如何解决Laravel 5.8:如何将两个参数传递给事件和监听器
我使用的是 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) {
但是这里出了点问题,因为我收到了这个错误:
App\Listeners\UserWalletNotification::handle() 函数的参数太少,1 个通过,正好 2 个预期
那么如何解决这个问题呢?如何正确地将两个参数传递给 Event & Listener?
更新 1
错误截图:
解决方法
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)
{
$transaction = $event->transaction;
$added_type = $event->added_type;
}
,
你可以使用数组。
event(new UserWalletNewTransaction([ 'transaction' => $newTransaction,'added_type' => $value_added_type));
public $transaction;
public $added_type;
public function __construct($data)
{
$this->transaction = $data['transaction'];
$this->added_type = $data['added_type'];
}
更新 #1:
您应该删除句柄函数的第二个参数。您可以访问 added_type
变量中的 $event
数据。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。