You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Eloquent通过请求数组批量更新或创建表记录?

问题

如何通过传入request array来更新整张表?要求能够更新已存在的数据行,若id不存在则创建新行;如果可行的话,希望无需遍历整张表。

尝试过的无效写法:

  • 写法1:
EventViews::query()->updateOrCreate($request->all());
  • 写法2:
DB::transaction(function ($request) {
    foreach ($request->all() as $record) {
        EventViews::updateOrCreate($record);
    }
});
  • 写法3:
$model = new EventViews($request->all());
$model->fill($request->all())->save();

解决方案

通过遍历请求数组中的每条记录,调用updateOrCreate方法并明确指定id作为匹配条件,即可实现“存在则更新、不存在则新增”的逻辑:

foreach($request->all() as $record){
    EventViews::query()->updateOrCreate(['id'=>$record['id']], $record);
}

内容的提问来源于stack exchange,提问作者Artur Müller Romanov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 18:09:23