将变量传递给laravel模型引导

时间:2019-05-26 07:00:51

标签: php laravel

我在应用程序中使用laravel 5.8。我有一个名为“ lot”的变量,当我删除一个变量时,我想执行其他操作。

所以我在模型上使用了删除功能,一切正常。

但是知道我的控制器上具有删除许多“批次”的功能,并且我希望仅在删除所有“批次”时才执行操作,而不是在删除每个“批次”时执行操作。

所以我想知道是否有办法实现这一目标?也许我们可以传递一个变量来启动函数来触发函数?

我的模型如下:

protected static function boot()
{
    parent::boot();

    static::deleted(function($modele) {

        Etage::doesntHave('lots')->delete();

    }
 }

1 个答案:

答案 0 :(得分:1)

模型事件旨在用于单个模型。

您应该改用Laravel Events,而不是与Models绑定。

EventServiceProvider.php中,在$listens数组中注册一个新的事件/侦听器,例如

LotsDeleted::class => PerformOtherAction::class

使用php artisan event:generate

创建这些类

然后,当您完成删除所有Lot对象时,请使用以下触发事件

event(new LotsDeleted());

您的监听器的handle()函数将被调用,您可以执行其他操作。