Laravel 5.8: 如何将两个参数传递给 Event 和 Listener

Laravel 5.8: How to pass two arguements to Event & Listener

我正在使用 Laravel 5.8,我创建了一个名为 UserWalletNewTransaction 的事件,如下所示:

public $transaction;
public $added_type;

public function __construct($transaction, $added_type)
{
    $this->transaction = $transaction;
    $this->added_type = $added_type;
}

如您所见,我在这里指定了两个参数,这些参数从控制器获取它们的值:

event(new UserWalletNewTransaction($newTransaction, $value_added_type));

然后名为 UserWalletNotification 的侦听器如下所示:

public function handle(UserWalletNewTransaction $event, $added_type) {

但是这里有问题,因为我收到了这个错误。

Too few arguments to function App\Listeners\UserWalletNotification::handle(), 1 passed and exactly 2 expected

那么如何解决这个问题呢?如何正确地将两个参数传递给 Event & Listener?我真的很感激你们的任何想法或建议...

错误截图如下:


更新 #1:

结果:

dump($event->added_type);
dd($event->transaction );

UserWalltetNotification 侦听器中从 handle 方法中删除第二个参数

所以

public function handle(UserWalletNewTransaction $event)
{
  
   dump($event->added_type); 
   dd($event->transaction ); 

 
}

如果您 dd($event); 您将获得 UserWalletNewTransaction

的所有属性