2017-02-28 97 views
0

我想更新或创建模型。它根本不工作。updateOrCreate在Laravel Eloquent中不起作用

这里是我的代码:

foreach ($ProfileRequest as $fieldname => $value){ 
    ProfileRequest::updateOrCreate(['sm_id' => $uid, 'field_name' => $fieldname], 
     [ 
      'sm_id' => $uid, 
      'field_name' => $fieldname, 
      'value' => $value 
     ]); 
    } 

这是工作插入:

foreach ($ProfileRequest as $fieldname => $value) { 
    $req = new ProfileRequest; 
    $req->chef_id = $uid; 
    $req->field_name = $fieldname; 
    $req->value = $value; 
    $req->save(); 
} 
+2

请描述什么是不工作,你究竟在做什么以及你得到什么错误。 –

+0

此代码不会创建或更新相同的 –

+0

而$ req = new ProfileRequest; $ req-> chef_id = $ uid; $ req-> field_name = $ fieldname; $ req-> value = $ value; $ req-> save();正在工作 –

回答

-2

这工作

foreach ($ProfileRequest as $fieldname => $value){ 
    ProfileRequest::firstOrNew(array('sm_id' => $uid, 'field_name' => $fieldname)); 
      $chefReq->sm_id = $uid; 
      $chefReq->field_name = $fieldname; 
      $chefReq->value = $value; 
      $chefReq->save(); 
} 
0

你需要在你的模型,以指定的可填写字段,因为你正在处理与大量更新。把它放在你的模型上

protected $fillable = ['field_name','value'];