19 FOREIGN KEY 约束在 Laravel 上失败

我正在尝试将数据写入我的 SQLite 数据库。我认为我的迁移文件和外键存在错误。


我试图更改文件的名称,使外键可以为空并清除 Laravel 的缓存。


您是否熟悉错误处理程序显示的错误,或者您能否将我指向一个可以帮助我理解我做错了什么的页面?


非常感谢您提前。


迁移文件:


<?php


use 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');

    }

}

模型文件:


<?php


namespace App;


use Illuminate\Database\Eloquent\Model;


// sQR stands for Saved QR-Code



class sqr extends Model

{

    protected $fillable = [

        'qr_link', 'user_id'

    ];

}

保存的控制器:


<?php


namespace 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))



烙印99
浏览 214回答 1
1回答

HUX布斯

@dparoli 在这篇文章的评论中说:“您确定您在数据库中有一个 id = 1 的用户吗? – dparoli”这是我的问题的答案。因为数据库中有 nog user = 1,所以崩溃了。
打开App,查看更多内容
随时随地看视频慕课网APP