为了账号安全,请及时绑定邮箱和手机立即绑定

将变量传递给 Laravel 模型启动

将变量传递给 Laravel 模型启动

PHP
神不在的星期二 2021-07-06 13:07:04
我的应用程序使用 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()您的侦听器的功能将被调用,您可以执行其他操作。


查看完整回答
反对 回复 2021-07-09
  • 1 回答
  • 0 关注
  • 152 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信