6

我知道 spark 有可以在用户注册时收听的事件,但我对 laravel 和事件完全陌生,有没有可以用来访问事件的示例?我的目标是听取用户创建的事件并向用户发送欢迎电子邮件。

4

1 回答 1

15

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

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

在 EventServiceProvider.php 中找到

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

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

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 和方法句柄将在调用侦听器时执行,仅此而已!

于 2016-05-04T09:28:05.673 回答