Laravel 5.2 - 使用一个查询更新多行

时间:2016-01-19 19:42:32

标签: php mysql laravel

所以我做了很多计算,最后我的费率需要保存到表格中的现有行。

我拥有的数组将类似于以下内容:

[
    <model_id> => [
        'rate' => <some rate>
    ]
    <model_id_2> => [
        'rate' => <some other rate>
    ]
    .....
]

现在显然我可以通过这个数组进行操作,并对数组中的每个项目进行更新,但最终可能会有100个更新调用。有没有办法(通过laravel的雄辩或甚至是原始的SQL查询)通过一次调用来完成所有这些更新?

2 个答案:

答案 0 :(得分:5)

如果您担心请求花费的时间,您可以通过触发事件然后排队将保存模型的侦听器/作业来处理此事件,以便可以异步处理它。例如,转到Laravel Docs for Queues

只要我知道你无法在Laravel上更新多行。

答案 1 :(得分:4)

您可以尝试使用Eloquent update()来更新多个记录。这是我用来将多个记录更新到我的表中的一些代码。

\App\Notification::where('to_id', '=', 0)
                ->update(['is_read' => 1]);