所以根据laravel事件doc,定义监听器时,它可以在自己的处理方法接收事件实例,并进行必要的逻辑:Laravel监听器监听多个事件
public function handle(FoodWasPurchased $event)
所以,如果我的FoodWasPurchased事件被定义为如下(设为EventServiceProvider设置):
public function __construct(Food $food)
{
$this->food = $food;
}
我能从听众通过做访问$食品事件荷兰国际集团:
$event->food->doSomething();
但现在我的问题是,如果有什么监听器监听多个事件?
Event FoodWasPurchased -> Listener Bill
Event DrinksWasPurchased -> Listener Bill
我现在做的是我没有在听者处理方法指定事件实例:
public function handle($event)
,我可以在以后使用的,如果条件检查什么在$活动得到:
if (isset($event->food)) {
// Do something...
} elseif (isset($event->drinks)) {
// Do something else...
}
我确定有更好的办法。
或者最好的做法是确保一个听众只听一个事件?
我们如何从控制器调用这个类? –
EventListeners在引发相应事件时触发。所以你必须在控制器内触发事件。 – jagzviruz