2017-08-31 8 views
0

Récemment, je commence à utiliser Laravel Echo, maintenant j'ai un doute. Supposons que je développe un magasin en ligne. En tant qu'utilisateur pour mon magasin en ligne, j'ai une liste de mes commandes dans différents états (en attente, approuvé, échoué, expédition, etc). Je veux mettre à jour le statut en temps réel en utilisant Laravel Echo.Inscrivez-vous sur un canal seulement pour mes commandes en utilisant laravel echo

Comment puis-je m'abonner uniquement aux événements sur mes commandes et non pour toutes les commandes de la boutique en ligne?

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

Appréciez votre aide.

Merci

Répondre

0

Vous pouvez écouter sur un canal privé.

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

en supposant que vous ayez un utilisateur dans votre javascript.

Maintenant, vous aurez besoin de mettre en place un itinéraire de canal dans vos routes/channels.php

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

Maintenant, un utilisateur ne peut écouter leur propre canal de commandes. Une bonne référence pour Laravel Echo est le official documentation.

+0

Un grand merci pour votre aide –