You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel 5.8中Pusher接收数据为Null的问题求助

解决Laravel 5.8中Pusher接收事件数据为null的问题

我一眼就找到了你代码里的核心问题——ChatEvent类的构造函数中属性赋值语法错误,导致message和user根本没被正确赋值,所以Pusher接收到的自然都是null。

问题根源

你在ChatEvent的构造函数里错误使用了可变属性访问语法:

public function __construct($message, User $user) {
    $this->$message = $message;
    $this->$user = $user;
}

$this->$message这种写法是把变量$message的值(也就是你传入的'hello')当作属性名,实际是给$this->hello赋值,而非你定义的$this->message属性。同理,$user是对象,PHP会尝试把它转为字符串作为属性名,完全偏离了你的预期。

修正方案

把构造函数里的赋值改为直接访问类的公共属性:

public function __construct($message, User $user) {
    $this->message = $message;
    $this->user = $user;
}

额外验证点(确保万无一失)

除了这个核心错误,你还可以快速确认以下几点:

  • 确保.env中的Pusher密钥、ID、集群配置,和broadcasting.php、前端bootstrap.js里的配置完全一致(你当前bootstrap.js硬编码了key,要和.env的PUSHER_APP_KEY匹配)
  • 在控制器的send方法里用dd($user)验证,确认用户数据确实被正确获取
  • 检查routes/channels.php里的私有频道授权逻辑,确保当前用户有权访问channel-name这个频道

修正后重新触发事件,Pusher就能正确接收到message和user的数据了。

内容的提问来源于stack exchange,提问作者Ghulam Haider

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 17:22:54