我正在嘗試將數據寫入我的 SQLite 數據庫。我認為我的遷移文件和外鍵存在錯誤。我試圖更改文件的名稱,使外鍵可以為空并清除 Laravel 的緩存。您是否熟悉錯誤處理程序顯示的錯誤,或者您能否將我指向一個可以幫助我理解我做錯了什么的頁面?非常感謝您提前。遷移文件:<?phpuse Illuminate\Support\Facades\Schema;use Illuminate\Database\Schema\Blueprint;use Illuminate\Database\Migrations\Migration;class CreateSqrTable extends Migration{ /** * Run the migrations. * * @return void */ public function up() { Schema::create('sqrs', function (Blueprint $table) { $table->bigIncrements('id'); $table->unsignedInteger('user_id')->nullable(); $table->string('qr_link'); $table->timestamps(); $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade'); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::dropIfExists('sqr'); }}模型文件:<?phpnamespace App;use Illuminate\Database\Eloquent\Model;// sQR stands for Saved QR-Codeclass sqr extends Model{ protected $fillable = [ 'qr_link', 'user_id' ];}保存的控制器:<?phpnamespace App\Http\Controllers;use Illuminate\Http\Request;use App\sqr;class saveController extends Controller{ public function save(Request $request) { $sqr = new sqr; $sqr->qr_link = $request->qr_link; $sqr->user_id = 1; $sqr->save(); return redirect('/'); }}前端刀片文件:<form method="post" action="/save"> @csrf <input type="hidden" name="qr_link" value="{{ session('url') }}"> <button class="btn btn-success">Save this QR</button> </form>我得到的錯誤如下:SQLSTATE[23000]: Integrity constraint violation: 19 FOREIGN KEY constraint failed (SQL: insert into "sqrs" ("qr_link", "user_id", "updated_at", "created_at") values (images/1567444499.svg, 1, 2019-09-02 17:37:23, 2019-09-02 17:37:23))
1 回答

HUX布斯
TA貢獻1876條經驗 獲得超6個贊
@dparoli 在這篇文章的評論中說:
“您確定您在數據庫中有一個 id = 1 的用戶嗎? – dparoli”
這是我的問題的答案。因為數據庫中有 nog user = 1,所以崩潰了。
- 1 回答
- 0 關注
- 205 瀏覽
添加回答
舉報
0/150
提交
取消