UpdateOrCreate无法正常运行

时间:2018-08-17 14:23:29

标签: laravel laravel-5 eloquent

im试图使用方法“ updateOrCreate”,并且几乎可以预期但有问题。

例如,如果记录不存在,它会创建,直到现在很好,但是例如,如果在我的情况下更改“ mybankroll”值,它将创建另一个记录。我能理解这是在创建,因为其中一列记录值不存在,但我不了解如何触发更新操作。

我的代码示例:

UserBankroll::updateOrCreate(
            ['my_bankroll' => $request->mybankroll, 'currency' => 'EUR'],
            ['user_id' => Auth::user()->id]
        );

但是,如果我尝试更新my_bankroll的值,而不是更新它,则会创建另一个记录。

2 个答案:

答案 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']

        );