首页 文章

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

提问于
浏览
5

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

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

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

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

2 回答

  • 5

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

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

  • 4

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

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

相关问题