如何在Register上挂钩Spark事件

时间:2016-05-02 05:06:27

标签: laravel laravel-5.2 vue.js laravel-spark

我知道spark有用户注册时可以收听的事件,但我对laravel和Events完全不熟悉,是否有可以用来访问事件的例子?我的目标是收听用户创建的活动并向用户发送欢迎电子邮件。

1 个答案:

答案 0 :(得分:11)

最后,我想出了解决方案。

基本上,Events调用EventServiceProvider类中定义的侦听器,该类存储在应用程序的app文件夹内的提供程序中。

在EventServiceProvider.php中找到

'Laravel\Spark\Events\Auth\UserRegistered' => [
              'Laravel\Spark\Listeners\Subscription\CreateTrialEndingNotification',
        ],

它将存储在EventServiceProvider类的$ listen中,这意味着UserRegistered事件将调用CreateTrialEndingNotification侦听器,因此我们需要创建一个listerner并附加到此处,创建一个监听器很容易只需创建一个新的  名为HookRegisteredUser(或您的选择)的文件,如app / Listeners下面的一些东西,将其路径添加到$ lave of“Laravel \ Spark \ Events \ Auth \ UserRegistered”

namespace App\Listeners;

use Laravel\Spark\Events\Auth\UserRegistered;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;

class HookRegisteredUser
{
    /**
     * Handle the event.
     *
     * @param  UserRegistered  $event
     * @return void
     */
    public function handle(UserRegistered $event)
    {
      //your code goes here
    }
}

之后在EventServiceProvider.php中添加HookRegisteredUser监听器,如下所示,

'Laravel\Spark\Events\Auth\UserRegistered' => [
            'Laravel\Spark\Listeners\Subscription\CreateTrialEndingNotification',
            'App\Listeners\HookRegisteredUser',
        ],

现在UserRegistered事件将调用两个侦听器,即CreateTrialEndingNotification,HookRegisteredUser,方法句柄将在调用侦听器时执行,就好了!