我有以下雄辩的代码:
$gifts = FriendGift::find($collectedGifts); // An array of IDS
我想将全部设置为collected = 1
。
我尝试了:
$gifts->update(['collected' => 1]);
但是我会收到以下错误:
Method update does not exist
怎么了?
您没有在模型上调用update
。您在没有方法update
的雄辩集合上调用update
。
只需调用模型,然后进行这样的质量更新:
FriendGift::whereIn('id', $collectedGifts)->update(['collected' => 1]);
如果$ collectedgifts是一个数组,则无法正常工作。模型:: find()正在等待一个简单的ID,而不是数组。
无论如何,如果要更新字段,我更喜欢使用元素的保存方法。因此,您只需获得所需的行,为其分配一些值,然后保存实例。例如:
$gifts = FriendGifts::find(15);//This is just 1 gift
$gifts->collected = 1;
$gifts->save();
用于多个礼物:
$gifts = FriedGifts::where('id',15)->get();
foreach($gifts as $one_gift){
$one_gift->collected = 1;
$one_gift->save();
}
或类似的东西!
希望这会有所帮助!祝你好运!