将数组变量从事件处理程序类传递到laravel中的控制器


Passing array variable from event handler class to controller in 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函数内的handl文件中访问的,例如

public function handle(Roomallocwithproperties $event)
 {
 $c= $event->a + $event->b;
 return $c;
 }

Eventservice provider文件

protected $listen = [
    'event.name' => [
        'EventListener',
    ],
    'App'Events'Roomallocwithproperties'=>[
        'App'Handlers'Events'Allocofroomprop', 
        ],
];

我从控制器中触发事件,比如

       $result= Event::fire(new Roomallocwithproperties($val1,$val2));
       dd($result);

我的问题是,我想返回值$c再次我的控制器。我使用event的原因是我在每次迭代中触发foreach事件,并再次返回其中的值。如何将变量$c返回给控制器函数,如何在控制器函数中接收值
谢谢大家的回复!

您需要的不是访问侦听器。你需要的是听众的反应。

Event::fire()方法返回侦听器响应数组。因此,无论侦听器的handle()方法返回什么,都将在该数组中。因此,侦听器只需要返回您想要从handle()方法收集的任何内容。