如何在模型中编写一个方法,并将其用于多个记录(如删除或更新)?
User::whereIn('id', [1, 2, 3])->delete();
我的方法是这样的:
public function remove()
{
$this->update([
'expired_at' => now()->addYear()
]);
}
但上述方法只能更新一条记录,我无法使用:
User::whereIn('id', [1, 2, 3])->remove();
我试试这个
public function remove()
{
$this->update([
'expired_at' => now()->addYear()
]);
}
2条答案
按热度按时间nbysray51#
下面是基于laravel-9模型中的
destroy()
函数的实现方法:用户模型(添加):(相应更改第31行)
控制器调用:
或者,如果你只想直接更新而不创建额外的逻辑,你可以像这样调用:
但是如果您希望处理比较日期、更改记录等复杂操作,那么可以根据需要修改foreach循环。
vltsax252#
你可以这样做
和Id的数组