laravel事件 - 从事件中调用另一个事件

时间:2015-05-27 04:34:49

标签: events laravel

我的EventServiceProvider有以下内容,

'App\Events\EventCreated' => [
            'App\Handlers\Events\EventCreatedNotifications',
            'App\Handlers\Events\EventCreatedMail'
        ],

我想通过传递参数从EventCreatedMail调用EventCreatedNotifications事件,是否可以执行此操作。

1 个答案:

答案 0 :(得分:0)

触发App\Events\EventCreated事件时,将触发为此事件注册的所有事件类。在代码组织方面,你所要求的并不好。调用EventCreatedMail时,EventCreatedNotifications将被称为annyways。是的,您可以实例化新的EventCreatedMail类并调用它的句柄函数来模拟调用事件,但这是错误的,您不应该这样做。

相反,您可以将两个事件分开,然后您可以轻松地从您想要的地方拨打EventCreatedMail,如下所示:

'App\Events\EventCreated' => [
    'App\Handlers\Events\EventCreatedNotifications',
],
'App\Events\CreatedNotification' => [
    'App\Handlers\Events\EventCreatedMail'
],

之后你可以打电话

event(new \App\Events\CreatedNotification($event->id, $input['notify']));

从你的第一次活动开始。