2016-10-15 153 views
1

我要插入一個新的記錄,如果不存在,如果存在更新,我碰到一個方法updateOrCreate,但有困難時期IM實現它使用laravel雄辯的updateOrCreate

$list = mList::updateOrCreate(
     [ 
     ['user_id' => 162, 'movie_id' => 862] 
     ], 
     [ 'tag' => 'watched'] //this data should be updated if the above got match 
); 

但即時得到的下面的查詢例外

SQLSTATE [42S22]:柱未找到:在 'where子句' 1054未知列 '162'(SQL:SELECT * FROM lists其中(162 = 862)限制1)

它應該尋找一個叫user_id的不是162

PS柱:IM有兩個條件,這樣做在哪裏(USER_ID = 162和movie_id = 862) 但是當我有一個條件做它的工作原理出奇。 如果有任何其他的雄辯方法可以做同樣請參考我..

+2

你爲什麼要包裝的屬性數組的數組?應該是這樣的:'[['user_id'=> 162,'movie_id'=> 862]]是這樣的:'['user_id'=> 162,'movie_id'=> 862]'? – Doom5

+0

@ Doom5感謝maan它的工作 –

回答

0

嘗試使用[ ] INSEAD的[ [ ] ],如:

$list = mList::updateOrCreate([ 
    'user_id' => 162, 
    'movie_id' => 862 
], [ 
    'tag' => 'watched' 
]); 
+5

請考慮添加一個簡短的解釋如何解決上述問題。這將有助於他人理解這個問題。另見[如何回答](http://stackoverflow.com/help/how-to-answer)。 – Leigh

+0

解釋:第一個參數是[]不[[]] –