Передача переменной массива из класса обработчика событий в контроллер в laravel

Я создал класс обработчика событий в

   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 в функцию контроллера, Как получить значение внутри этой функции контроллера!
Спасибо за все ответы!

0

Решение

То, что вам нужно, это не доступ к слушателям. Что вам нужно, это отзывы слушателей.

Событие :: огонь () Метод возвращает массив ответов слушателей. Так что независимо от слушателя справиться() возвращенный метод будет в этом массиве. Поэтому ваши слушатели должны просто вернуть все, что вы хотите получить от справиться() метод.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector