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

Bil*_*son 5 php mysql laravel

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

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

[
    <model_id> => [
        'rate' => <some rate>
    ]
    <model_id_2> => [
        'rate' => <some other rate>
    ]
    .....
]
Run Code Online (Sandbox Code Playgroud)

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

Nik*_* K. 7

您可以尝试使用 Eloquentupdate()进行多条记录更新。这是我用于将多个记录更新到我的表中的一些代码。

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


小智 5

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

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