在Laravel 5.1中发送邮件的事件

时间:2015-07-08 10:29:55

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

我正在尝试在Laravel 5.1中实现事件。被解雇的事件将发送邮件。

我做了以下步骤:

首先,在EventServiceProvider中,我在$listen

中添加了此内容
'send.mail' => [
            \App\Listeners\CreateTicketMail::class,
        ],

其次,创建了一个新的事件类 - SendActionEmails

然后在Listener类中创建此事件的处理程序 - CreateTicketMail

public function handle(SendActionEmails $event)
{
    dd($event);
}

现在当我触发此事件send.mail时,我收到错误

Event::fire('check.fire');

Argument 1 passed to App\Listeners\CreateTicketMail::handle() must be an instance of App\Events\SendActionEmails, none given

此外,我在哪里可以将数据发送到Mail将使用的事件。来自主题的数据。

我发现一种方式,当发射事件时,作为参数传递给火。

Event::fire('check.fire', array($data));

但是,我如何在监听器中处理这些数据?

1 个答案:

答案 0 :(得分:2)

您需要将事件对象传递给fire方法并侦听名为事件类的事件:

在EventServiceProvider中:

SendActionEmails::class => [
    \App\Listeners\CreateTicketMail::class,
],

活动类:

class SendActionEmails {
  public $data;
}

火灾事件并传递一些数据:

$event = new SendActionEmails;
$event->data = 'some data';
Event::fire($event);