我有以下雄辩的代码:
$gifts = FriendGift::find($collectedGifts); // An array of IDS
我想将所有内容设为collected = 1
。
我试过了:
$gifts->update(['collected' => 1]);
但是我收到以下错误:
Method update does not exist
怎么了?
答案 0 :(得分:7)
您没有在模型上调用update
。你在一个没有方法update
的Eloquent Collection上调用update
。
答案 1 :(得分:3)
只需调用模型并执行大量更新:
FriendGift::whereIn('id', $collectedGifts)->update(['collected' => 1]);
答案 2 :(得分:0)
如果$ collectGifts是一个数组,那就不行了。 Model :: find()正在等待一个简单的id,而不是一个数组。
无论如何,如果我想更新字段,我更喜欢使用元素的save方法。 因此,您只需获取所需的行,为其指定一些值,然后保存实例。 例如:
$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();
}
或类似的东西!
希望这有帮助! 祝你好运!