2016-02-19 67 views
0

我有下面的代碼行,以確定在數據庫中是否存在記錄,如果它不那麼相應地更新它,如果沒有創建它:模型創建方法不工作

$test = Result::where('match_id','=',$input['id'])->get(); 

    if(empty($test)){ 
     Result::create($result); 
    } else { 
     Result::where('match_id','=',$input['id'])->update($result); 
    }; 

    return redirect('admin/results'); 

更新部分作品很好,但是創建元素似乎不起作用。當我剝離下來,只是使用它創建工作得很好,所以不能找出問題

回答

1

必須設定的屬性可填寫您的模型:

protected $fillable = ['a','b'];

而且還有一個更好的方法:

Result::updateOrCreate(['match_id'=>$input['id']], ['a'=>$input['a'],'b'=>$input['b']]) 
+0

隨着該updateOrCreate,將這項工作,因爲它是或做我必須做類似服用點::結果whereId($輸入[ '身份證']) - >獲得();在我運行updateOrCreate之前? – danjswade

+0

我已經在模型中設置了可填寫的所有內容。 – danjswade

+0

必須按照原樣運行。 [DOC](https://laravel.com/api/5.0/Illuminate/Database/Eloquent/Model.html#method_updateOrCreate) –