所以根據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