请问事件为什么没触发监听器的逻辑?
我的理解是事件和监听器注册之后,触发事件会主动走监听器的handle方法,可是测试了一下,好像完全都没监听器什么事。。。
我的代码是这样
//注册事件和监听器
TestEvent::class => [
TestListener::class,
],
//事件
public function __construct()
{
echo '事件构造器函数<br>';
}
public function broadcastOn()
{
echo '事件方法<br>';
return new PrivateChannel('channel-name');
}
//监听器
public function __construct()
{
echo '监听器构造函数<br>';
}
public function handle(TestEvent $event)
{
echo '监听器方法<br>';
}
//控制器中触发事件
public function event(){
echo "begin <br>";
TestEvent::dispatch();
//event(new TestEvent());
echo "end";
}
//我预想的结果
begin
事件构造器函数
监听器构造函数
监听器方法
end
//实际的结果
begin
事件构造器函数
end
你看错文档了?dispatch()是分发任务的。要分发事件用event()。 event(new TestEvent());