程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Laravel 5.8:如何将两个参数传递给事件和监听器大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决Laravel 5.8:如何将两个参数传递给事件和监听器?

开发过程中遇到Laravel 5.8:如何将两个参数传递给事件和监听器的问题如何解决?下面主要结合日常开发的经验,给出你关于Laravel 5.8:如何将两个参数传递给事件和监听器的解决方法建议,希望对你解决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

错误截图:

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)
{
    $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 数据。

大佬总结

以上是大佬教程为你收集整理的Laravel 5.8:如何将两个参数传递给事件和监听器全部内容,希望文章能够帮你解决Laravel 5.8:如何将两个参数传递给事件和监听器所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。