我在
中创建了事件处理程序类 App\Events\Roomallocwithproperties(Event file)
App\Handlers\Events\Allocofroomprop(Handler file)
在laravel 5中,我从Controller传递了两个变量,并在Event文件中使用构造函数获取该变量,如
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提供程序文件中
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)
您需要的不是对听众的访问。你需要的是听众的回应。
Event :: fire()方法返回侦听器响应数组。所以无论听众的 handle()方法返回的是该数组。因此,您的听众只需从 handle()方法返回您想要收集的内容。