订阅一个频道只为我的订单使用拉拉维尔回声

问题描述:

最近我开始使用Laravel回声,现在我有一个疑问。假设我正在开发一家网上商店。作为我的网上商店的用户,我有不同州的订单清单(待处理,批准,失败,运送等)。我想使用Laravel Echo实时更新状态。订阅一个频道只为我的订单使用拉拉维尔回声

我怎样才能订阅我的订单上的事件,而不是网上商店的所有订单?

Echo.channel('orders') //only my orders 
.listen('OrderStatus', (e) => { 
    console.log(e.order.status); 
}); 

感谢您的帮助。

感谢

您可以在私人频道听。

Echo.private('orders.' + user.id) //only your orders 
.listen('OrderStatus', (e) => { 
    console.log(e.order.status); 
}); 

假设你在javascript中有一些用户。

现在你需要建立一个通道路线在你的路由/ channels.php

Broadcast::channel('orders.{userId}', function ($user, $userId) { 
    return $user->id === $userId; 
}); 

现在,用户只能听自己的订单渠道。 Laravel Echo的一个很好的参考是official documentation

+0

非常感谢您的帮助 –