【发布时间】:2020-06-22 07:23:13
【问题描述】:
我有一个对象模型,它有多个行,例如通过此查询获得的结果:
$cities = City::whereIn('id' , [1,2,3])->get();
我想要做的是用相同的值更新每一行而不使用each,因为each 正在对每一行进行查询,所以在上面的查询中我将有 3 个查询。
不要这样做:
$cities->each->update(['name' => 'test']);
我想做这样的事情,因为我已经有了模型对象,但它不起作用:
$cities->update(['name' => 'test']);
相反,我必须做这样的事情才能让它发挥作用:
City::whereIn('id' , $cities->pluck('id'))->update(['Avatar' => 'test']);
我的问题是;为什么我不能用这个:
$cities->update(['name' => 'test']);
【问题讨论】:
-
City::whereIn('id' , [1,2,3])->update(['name' => 'test']); -
我知道我可以做到这一点,但我只是通过这段代码来说明我的观点,我的对象已经构建在服务中,我将对象传递给另一个服务以执行更新方法
-
答案的关键在于,如果没有 Eloquent,你会怎么做?
标签: laravel eloquent lumen laravel-collection