Laravel-messenger : Participants sur la page d'index ?

Par Rayzor286, il y a 10 ans


Bonjour,

J'ai besoin de votre aide pour un problème avec le package laravel-messenger (https://github.com/cmgmyr/laravel-messenger)

Je souhaiterai afficher les participants d'une discussion directement sur la page d'index (qui liste tout les discussions).

Le créateur du package m'a donné une indication mais elle ne marche tout simplement pas, je vous la réécris tout de même ici pour vous montrer :

@foreach($threads as $thread) @foreach($thread->participants() as $participant) <img src="{{$participant->user->avatar}}" alt="" /> @endforeach @endforeach

Merci de votre aide :)

8 réponses

betaWeb, il y a 10 ans

Salut,

Sans plus de précisions on ne pourra pas t'aider. As-tu vérifier que tes variables $threads && $thread ne sont pas vides ?

Rayzor286, il y a 10 ans

Salut,

Merci tout d'abord de ton aide :) !

La variable $threads marche bien ainsi que $thread pour récupérer une seule discussion :p
C'est le fait de vouloir récupérer tous les participants d'une discussion qui est plus compliqué apparement :(

Dans le model Thread.php :

public function participants() { return $this->hasMany(Models::classname(Participant::class), 'thread_id', 'id'); }

Dans le model Message.php

public function thread() { return $this->belongsTo(Models::classname(Thread::class), 'thread_id', 'id'); } public function user() { return $this->belongsTo(Models::classname(User::class), 'user_id'); }
betaWeb, il y a 10 ans

Fais un dd($threads) et vois si ce que tu essayes de récupérer est là. L'affichage de ta boucle te donne des lognes blanches c'est ça ?

Rayzor286, il y a 10 ans

Oui je n'obtiens aucun résultat :/

Quand je fais un dd, je n'ai pas accès à la partie user enfaite j'ai l'impression

betaWeb, il y a 10 ans

Donc voilà pourquoi ta boucle ne donne rien. Commence par regarder du côté de tes queries SQL.

Rayzor286, il y a 10 ans

Et comment pourrai-je faire pour lier un thread unique à plusieurs participants qui y participent ?
Avec une jointure je suppose mais en laravel j'ai un peu de mal ^^

Je suis complètement perdu pour cette fonctionnalité parce que l'auteur du package l'a fait d'une certaine manière et c'est difficile de s'y retrouver au niveau de qui fait quoi enfaite :x

betaWeb, il y a 10 ans

A quoi sert ce package ?

AlexJM, il y a 10 ans

A faire un système de messagerie.
Rayzor, pourquoi utiliser un package ? Si tu connais pas trop laravel je pense que ca serait mieux que tu essayes de le faire de toi même. Qui plus est, cela n'est pas très long

Sinon, si tu veux percéverer avec le package, peux-tu nous montrer la structure de ta DB ?

Et si tu retires les () de participants genre $thread->participants, ca fonctionne pas ?