im试图使用方法“ updateOrCreate”,并且几乎可以预期但有问题。
例如,如果记录不存在,它会创建,直到现在很好,但是例如,如果在我的情况下更改“ mybankroll”值,它将创建另一个记录。我能理解这是在创建,因为其中一列记录值不存在,但我不了解如何触发更新操作。
我的代码示例:
UserBankroll::updateOrCreate(
['my_bankroll' => $request->mybankroll, 'currency' => 'EUR'],
['user_id' => Auth::user()->id]
);
但是,如果我尝试更新my_bankroll的值,而不是更新它,则会创建另一个记录。
答案 0 :(得分:3)
您似乎将数组向后放置。
第一个数组应该是您要匹配的对象,第二个数组应该是更新值。
https://laravel.com/api/5.0/Illuminate/Database/Eloquent/Model.html#method_updateOrCreate
答案 1 :(得分:1)
UserBankroll::updateOrCreate(
['user_id' => Auth::user()->id],
['my_bankroll' => $request->mybankroll, 'currency' => 'EUR']
);