Yani dinleyicileri tanımlarken laravel olay doc göre, gerekli herhangi mantığı kendi kolu yönteminde olay örneğini almak ve gerçekleştirebilir: Yanilaravel dinleyici birden olaya dinlemek
public function handle(FoodWasPurchased $event)
FoodWasPurchased benim eğer olay (EventServiceProvider ayarlanır varsaydıkları) aşağıdaki gibi tanımlanır:
public function __construct(Food $food)
{
$this->food = $food;
}
ben do tarafından dinleyicimizden durumunda $ gıda erişebilecek ing:
$event->food->doSomething();
Ama şimdi bir soru dinleyici birden fazla olayı dinliyorsa benim sorum nedir?
Event FoodWasPurchased -> Listener Bill
Event DrinksWasPurchased -> Listener Bill
Ben is ben dinleyici kolu yönteminde olay örneğini belirtmedi şimdi ne yaptı: koşul $ durumunda alınan kontrol etmek eğer
public function handle($event)
daha sonra bir kullanabilirsiniz:
if (isset($event->food)) {
// Do something...
} elseif (isset($event->drinks)) {
// Do something else...
}
Eminim daha iyi bir yol var. Ya da en iyi uygulama, bir dinleyicinin yalnızca bir tek olayı dinlemesini sağlamaktır mı?
Bu sınıfı nasıl kontrolörden arayabiliriz? –
EventListeners, ilgili olay kaldırıldığında tetiklenir. Bu yüzden, denetleyicideki olayı tetiklemelisiniz. – jagzviruz