【问题标题】:How to listen for an event in Laravel 5.2?如何在 Laravel 5.2 中监听事件?
【发布时间】:2023-04-02 04:09:01
【问题描述】:

我有一个 Laravel 包,它触发位于供应商文件夹中的事件。

被触发的事件类是Mikea\Kicker\Events\Interviews\SurveyWasCompleted

我需要监听那个事件,然后死掉并转储事件的对象。

我在 routes.php 文件中添加了以下代码

Event::listen('Mikea\Kicker\Events\Interviews\SurveyWasCompleted', function($event){
    dd($event);
});

但是,屏幕上没有显示任何内容。我确定会调用 SurveyWasCompleted 事件,因为当我死并从事件内部转储时,我会获取数据。

如何正确监听要触发的事件?

【问题讨论】:

    标签: php laravel laravel-5 laravel-5.1 laravel-events


    【解决方案1】:

    您可能需要在 EventServiceProvider 而不是 routes.php 文件中注册它。

    https://laravel.com/docs/5.2/events#registering-events-and-listeners

    【讨论】:

    • 我也这样做了,但还是不行。我添加了一个名为Mikea\Kicker\Listener\IncreaseStoreQuota 的侦听器,然后将其添加到EventsServiceProvider。然后在IncreaseStoreQuota 中,我试图死掉并转储$event。还是不行
    【解决方案2】:

    你需要在EventServiceProvider中注册事件

    protected $listen = [
            'Mikea\Kicker\Events\Interviews\SurveyWasCompleted' => [
                'Mikea\Kicker\Listeners\SurveyWasCompletedListener',
            ]
        ];
    

    那你需要创建一个ListenerSurveyWasCompletedListener

    namespace Mikea\Kicker\Listeners;
    
    use Mikea\Kicker\Events\Interviews\SurveyWasCompleted;
    use Illuminate\Queue\InteractsWithQueue;
    use Illuminate\Contracts\Queue\ShouldQueue;
    
    class SurveyWasCompletedListener
    {
        /**
         * Create the event listener.
         *
         * @return void
         */
        public function __construct()
        {
            //
        }
    
        /**
         * Handle the event.
         *
         * @param  SurveyWasCompleted $event
         * @return void
         */
        public function handle(SurveyWasCompleted $event)
        {
            //do something
        }
    } 
    

    显然您需要使用

    触发事件
    Event::fire(new SurveyWasCompleted($data));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-05-20
      • 1970-01-01
      • 1970-01-01
      • 2016-07-24
      • 2020-08-28
      • 2020-11-29
      • 1970-01-01
      • 2017-10-25
      相关资源
      最近更新 更多