猿问

将变量传递给 Laravel 模型启动

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


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


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


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


我的模型看起来像这样:


protected static function boot()

{

    parent::boot();


    static::deleted(function($modele) {


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


    }

 }


神不在的星期二
浏览 153回答 1
1回答

慕桂英3389331

模型事件旨在为单个模型工作。您应该改用 Laravel事件,而不是绑定到模型。在数组中EventServiceProvider.php注册一个新的事件/侦听器$listens,例如LotsDeleted::class => PerformOtherAction::class创建这些类 php artisan event:generate然后,当您完成删除所有Lot对象时,触发事件event(new LotsDeleted());handle()您的侦听器的功能将被调用,您可以执行其他操作。
随时随地看视频慕课网APP
我要回答