我的应用程序使用 laravel 5.8。我有变量称为“lot”,当我删除一个时,我想执行其他操作。所以我在我的模型上使用删除功能,一切正常。但是要知道我的控制器上有一个功能可以删除许多“批次”,并且我希望仅在删除所有“批次”时执行操作,而不是在每个“批次”删除时执行操作。所以我想知道是否有办法实现这一目标?也许我们可以传递一个变量来启动函数来触发或不触发该函数?我的模型看起来像这样:protected static function boot(){ parent::boot(); static::deleted(function($modele) { Etage::doesntHave('lots')->delete(); } }
1 回答
慕桂英3389331
TA贡献2036条经验 获得超8个赞
模型事件旨在为单个模型工作。
您应该改用 Laravel事件,而不是绑定到模型。
在数组中EventServiceProvider.php
注册一个新的事件/侦听器$listens
,例如
LotsDeleted::class => PerformOtherAction::class
创建这些类 php artisan event:generate
然后,当您完成删除所有Lot
对象时,触发事件
event(new LotsDeleted());
handle()
您的侦听器的功能将被调用,您可以执行其他操作。
- 1 回答
- 0 关注
- 152 浏览
添加回答
举报
0/150
提交
取消