未定义 属性:App\Events\UserWalletNewTransaction::$user_id
Undefined property: App\Events\UserWalletNewTransaction::$user_id
我创建了一个名为 UserWalletNewTransaction.php
的事件并将其添加到其中:
public $transaction;
public function __construct($transaction) {
$this->$transaction = $transaction;
}
并且还在EventServiceProivder.php
注册了它:
use App\Listeners\UserWalletNotification;
protected $listen = [
UserWalletNewTransaction::class => [
UserWalletNotification::class,
],
现在为了在控制器上触发这个事件,我编码如下:
$newTransaction = UserWalletTransaction::create(['user_id' => $user_id, 'wallet_id' => $wallet_id, 'creator_id' => $creator_id, 'amount' => $amount_add_value, 'description' => $trans_desc]);
event(new UserWalletNewTransaction($newTransaction));
然后在监听器中,UserWalletNotification.php
,我尝试了:
public function handle(UserWalletNewTransaction $event) {
$uid = $event->user_id;
dd($uid);
}
但我收到 Undefined property: App\Events\UserWalletNewTransaction::$user_id
错误消息。
然而,如果我尝试dd($event)
,这个结果成功出现:
那么这里出了什么问题?如何获得 $event
中已经存在的 user_id
?
非常感谢你们的任何想法或建议...
尝试以下,将其添加到您的活动中 class UserWalletNewTransaction
public $transaction;
public function __construct(UserWalletTransaction $transaction)
{
$this->transaction = $transaction;
}
并在监听器中
public function handle(UserWalletNewTransaction $event) {
$uid = $event->transaction->user_id;
dd($uid);
}
错误很明显,您正在尝试访问 App\Events\UserWalletNewTransaction
而不是您的 UserWalletTransaction
模型的对象上的 $user_id
。
您的解决方法是:
public function handle(UserWalletNewTransaction $event) {
$uid = $event->transaction->user_id;
}
如果您使用好的 IDE,这永远不会发生在您身上,因为它已经告诉您 $event
是 UserWalletNewTransaction
。尝试使用另一个 IDE 或可以自动完成的那个,这样你就可以更快更好地开发。
我创建了一个名为 UserWalletNewTransaction.php
的事件并将其添加到其中:
public $transaction;
public function __construct($transaction) {
$this->$transaction = $transaction;
}
并且还在EventServiceProivder.php
注册了它:
use App\Listeners\UserWalletNotification;
protected $listen = [
UserWalletNewTransaction::class => [
UserWalletNotification::class,
],
现在为了在控制器上触发这个事件,我编码如下:
$newTransaction = UserWalletTransaction::create(['user_id' => $user_id, 'wallet_id' => $wallet_id, 'creator_id' => $creator_id, 'amount' => $amount_add_value, 'description' => $trans_desc]);
event(new UserWalletNewTransaction($newTransaction));
然后在监听器中,UserWalletNotification.php
,我尝试了:
public function handle(UserWalletNewTransaction $event) {
$uid = $event->user_id;
dd($uid);
}
但我收到 Undefined property: App\Events\UserWalletNewTransaction::$user_id
错误消息。
然而,如果我尝试dd($event)
,这个结果成功出现:
那么这里出了什么问题?如何获得 $event
中已经存在的 user_id
?
非常感谢你们的任何想法或建议...
尝试以下,将其添加到您的活动中 class UserWalletNewTransaction
public $transaction;
public function __construct(UserWalletTransaction $transaction)
{
$this->transaction = $transaction;
}
并在监听器中
public function handle(UserWalletNewTransaction $event) {
$uid = $event->transaction->user_id;
dd($uid);
}
错误很明显,您正在尝试访问 App\Events\UserWalletNewTransaction
而不是您的 UserWalletTransaction
模型的对象上的 $user_id
。
您的解决方法是:
public function handle(UserWalletNewTransaction $event) {
$uid = $event->transaction->user_id;
}
如果您使用好的 IDE,这永远不会发生在您身上,因为它已经告诉您 $event
是 UserWalletNewTransaction
。尝试使用另一个 IDE 或可以自动完成的那个,这样你就可以更快更好地开发。