我有一个对象模型,该模型具有多个行,例如通过此查询获取结果:
$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']);
当您使用->get()
方法时,您得到的不是模型,而是模型的集合。
没有多行模型。模型只有一个“行”。