Я создал событие \ Listener, зарегистрировав пару в EventServiceProvider. После запуска php artisan generate: event Laravel создает классы Event и Listener в уважаемых каталогах.Понимание конструкторов для слушателей событий
Я заметил, что если вы хотите запустить событие, вам необходимо вызвать статический метод Event :: fire.
Event::fire(new SomeEventClass($variable));
Однако я заметил, что если вы хотите, чтобы передать $variable
в Listener.
Вы должны объявить переменную $ в качестве государственной собственности класса и создать конструктор в классе Associated событий, так что вы можете использовать его в классе Слушатель, попозже проходя $variable
из $event->variable
, иначе $variable
не будет работать в классе Listener.
class SomeEventClass extends Event {
use SerializesModels;
public $variable;
/**
* Create a new event instance.
*
* @return void
*/
public function __construct($variable) {
$this->variable = $variable;
}
/**
* Get the channels the event should be broadcast on.
*
* @return array
*/
public function broadcastOn() {
return [];
}
}
Так что, чтобы уточнить мой вопрос, что происходит под капотом, в этой ситуации.