我正在尝试在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));
但是,我如何在监听器中处理这些数据?
答案 0 :(得分:2)
您需要将事件对象传递给fire方法并侦听名为事件类的事件:
在EventServiceProvider中:
SendActionEmails::class => [
\App\Listeners\CreateTicketMail::class,
],
活动类:
class SendActionEmails {
public $data;
}
火灾事件并传递一些数据:
$event = new SendActionEmails;
$event->data = 'some data';
Event::fire($event);