2016-10-15 152 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

解释:第一个参数是[]不[[]] –