laravel 5.4中updateorcreate中的MassAssignmentException

时间:2017-11-18 08:42:09

标签: php laravel-5

我是laravel的新手我正在使用updateorcreate模型。但是这显示错误MassAssignmentException end_time在Model Tasktimelog中我使用的是protected $ guarded = array();这就是我在做什么。

$endtask= Tasktimelog::updateOrCreate(
        [
            'task_id' => $taskid, 
            'action_type'=>4, 
            'user_id'=> auth()->id()
        ],
        [
          'end_time'             => $endtimeis,
          'total_time'           => request('totalseconds'), 
          'remark'               => request('remark'), 
          'actual_complete_time' => $diff, 
          'project_id'           => $getprojectid->project_id
        ]);

1 个答案:

答案 0 :(得分:0)

Laravel不允许您不指定数据库的大量更新字段:

您需要做的是将$ fillable变量添加到模型中,其中的字段可以大量更新:

class Tasktimelog extends Model
{
    protected $fillable = ['task_id', 'action_type', 'user_id']; //and the rest of your fields
}

Laravel Doc:虽然$ fillable用作应该批量分配的属性的“白名单”,但您也可以选择使用$ guarded。 $ guarded属性应包含您不希望大量分配的属性数组。

https://laravel.com/docs/5.5/eloquent#eloquent-model-conventions