Laravel updateOrCreate一般错误字段post_id不存在

时间:2017-02-09 15:05:27

标签: php mysql sql laravel eloquent

我在数据库中有一个视图表,我试图使用此代码更新其中的记录(或者如果它还不存在则创建它):

$ar = ['number_of_views' => $number_of_views['number_of_views']+1, 'post_id' => $post->id];
App\View::updateOrCreate(['id' => $number_of_views['id']], $ar);

不幸的是,这会返回错误:

  

SQLSTATE [HY000]:常规错误:1364字段' post_id'没有   默认值(SQL:插入viewsnumber_of_views,   updated_atcreated_at)值(1,2017-02-09 14:41:19,2017-02-09   14点41分19秒))

似乎它没有识别'post_id' => $post->id因此返回错误,好像它根本没有设置。

只有在创建记录时才会出现此错误,如果已存在则不会出现此错误。

1 个答案:

答案 0 :(得分:1)

您需要将post_id字段添加到模型上的fillable属性中以进行质量分配,如下所示:

protected $fillable = ['post_id', 'number_of_views'];