php - 将数组传递给侦听器并获取更新的数组
问题描述
我正在将一个数组传递给一个事件,并且我正在更新侦听器中的数组。但我没有在事件发生后取回更新的数组。
这是我调用事件的地方:
$roles_permissions = ["val1"];
event(new SeedingRolesPermissions($roles_permissions));
var_dump($roles_permissions);
这是事件类的代码。我只是使用构造函数来设置事件的 roles_permissions 数组。我也尝试通过引用传递数组,但没有帮助。
<?php
namespace App\Events;
use Illuminate\Broadcasting\Channel;
use Illuminate\Broadcasting\InteractsWithSockets;
use Illuminate\Broadcasting\PresenceChannel;
use Illuminate\Broadcasting\PrivateChannel;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;
use Illuminate\Foundation\Events\Dispatchable;
use Illuminate\Queue\SerializesModels;
class SeedingRolesPermissions
{
use Dispatchable, InteractsWithSockets, SerializesModels;
public $roles_permissions;
/**
* Create a new event instance.
*
* @return void
*/
public function __construct($roles_permissions)
{
$this->roles_permissions = $roles_permissions;
}
/**
* Get the channels the event should broadcast on.
*
* @return \Illuminate\Broadcasting\Channel|array
*/
public function broadcastOn()
{
return new PrivateChannel('channel-name');
}
}
这是事件的侦听器:
<?php
namespace Modules\Sales\Listeners;
use App\Events\SeedingRolesPermissions;
use Log;
class AddRolesPermissions
{
/**
* Create the event listener.
*
* @return void
*/
public function __construct()
{
}
/**
* Handle the event.
*
* @param SeedingRolesPermissions $event
* @return void
*/
public function handle(SeedingRolesPermissions $event)
{
$event->roles_permissions[] = ["val2"];
}
}
任何帮助将不胜感激!