laravel事件监听器

Posted 小V_chen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了laravel事件监听器相关的知识,希望对你有一定的参考价值。

在EventServiceProvide文件里注册事件和监听

protected $listen = [
        AppEventsSendPhoneCodeEvent => [
            AppListenersSendPhoneCodeListener,
        ]
    ];

 

1.建立事件文件Events/SendPhoneCodeEvent.php

<?php
namespace AppEvents;

class SendPhoneCodeEvent
{
    use SerializesModels;

    public $data;

    /**
     * 创建一个事件实例。
     *
     * @param  AppOrder  $order
     * @return void
     */
    public function __construct($data)
    {
        $this->data = $data;
    }
}

2.建立监听文件 Listeners/SendPhoneCodeListener.php

<?php
namespace AppListeners;

use AppEventsSendPhoneCodeEvent;
use IlluminateSupportFacadesLog;

class SendPhoneCodeListener
{
    /**
     * 创建事件监听器。
     *
     * @return void
     */
    public function __construct()
    {

    }

    /**
     * 处理事件。
     *
     * @param  AppEventsSendPhoneCodeEvent  $event
     * @return void
     */
    public function handle(SendPhoneCodeEvent $event)
    {

        Log::info("Listener:".$event->data);
    }

    public function failed()
    {
    }
}

4.有控制器里调用事件

use AppEventsSendPhoneCodeEvent;

event(new SendPhoneCodeEvent(123456789));

 

以上是关于laravel事件监听器的主要内容,如果未能解决你的问题,请参考以下文章

在事件监听器中同步多对多关系(Laravel 5.7)

在同一个片段中实现多个事件监听器 - Android

Laravel之事件

laravel 事件 & 监听

如何在接收事件的多个 Laravel/Lumen 侦听器中保留模型状态?

Laravel 的事件系统