使用Laravel updateOrCreate()方法时违反完整性约束

时间:2018-12-10 20:27:24

标签: laravel

我要在当前的Laravel网站上创建一个投票系统,但是有一个问题,我在使用Laravel updateOrCreate()方法时根本不了解。

这就是我想要做的:

$vote = Vote::updateOrCreate(
    ['thread_id' => $id, 'user_id' => Auth::id()],
    ['type' => $request->type]
);

是否对thread_id进行投票,并且user_id使用type值更新其$request->type字段。如果不是,请创建一个新记录。无论哪种方式,我都会遇到一个Integrity constrait violation: 1048错误,提示:'user_id' cannot be null

我用这种方法做错了吗?

这是我的Vote模型迁移:

Schema::create('votes', function (Blueprint $table) {
    $table->increments('id');
    $table->integer('user_id')->unsigned();
    $table->integer('thread_id')->unsigned();
    $table->boolean('type');
    $table->timestamps();

    $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
    $table->foreign('thread_id')->references('id')->on('threads')->onDelete('cascade');
});

在此先感谢您的英语不好!

0 个答案:

没有答案