我在应用程序中使用laravel 5.8。我有一个名为“ lot”的变量,当我删除一个变量时,我想执行其他操作。
所以我在模型上使用了删除功能,一切正常。
但是知道我的控制器上具有删除许多“批次”的功能,并且我希望仅在删除所有“批次”时才执行操作,而不是在删除每个“批次”时执行操作。
所以我想知道是否有办法实现这一目标?也许我们可以传递一个变量来启动函数来触发函数?
我的模型如下:
protected static function boot()
{
parent::boot();
static::deleted(function($modele) {
Etage::doesntHave('lots')->delete();
}
}
答案 0 :(得分:1)
模型事件旨在用于单个模型。
您应该改用Laravel Events,而不是与Models绑定。
在EventServiceProvider.php
中,在$listens
数组中注册一个新的事件/侦听器,例如
LotsDeleted::class => PerformOtherAction::class
使用php artisan event:generate
然后,当您完成删除所有Lot
对象时,请使用以下触发事件
event(new LotsDeleted());
您的监听器的handle()
函数将被调用,您可以执行其他操作。