Я создал класс обработчика событий в
App\Events\Roomallocwithproperties(Event file)
App\Handlers\Events\Allocofroomprop(Handler file)
В laravel 5 я передал две переменные из контроллера и получил эту переменную с помощью конструктора в файле событий, как
public function__construct($a,$b) {
$this->a=$a;
$this->b=$b;
}
Это значение я получил в файле обработчика внутри функции handl, такой как
public function handle(Roomallocwithproperties $event)
{
$c= $event->a + $event->b;
return $c;
}
В файле провайдера Eventservice
protected $listen = [
'event.name' => [
'EventListener',
],
'App\Events\Roomallocwithproperties'=>[
'App\Handlers\Events\Allocofroomprop',
],
];
И я запускаю события из контроллера, такие как
$result= Event::fire(new Roomallocwithproperties($val1,$val2));
dd($result);
Моя проблема в том, что я хочу вернуть значение $ c снова моему контроллеру. Причина, по которой я использую событие, заключается в том, что я запускаю событие из foreach на каждой итерации и снова возвращаю значение внутри него.
Как вернуть переменную $ c в функцию контроллера, Как получить значение внутри этой функции контроллера!
Спасибо за все ответы!
То, что вам нужно, это не доступ к слушателям. Что вам нужно, это отзывы слушателей.
Событие :: огонь () Метод возвращает массив ответов слушателей. Так что независимо от слушателя справиться() возвращенный метод будет в этом массиве. Поэтому ваши слушатели должны просто вернуть все, что вы хотите получить от справиться() метод.
Других решений пока нет …