Double relation

Par abourtnik, il y a 7 ans


Bonjour,

Je suis en train d'essayer de faire un reseau social avec Laravel 5.4 et j'aimerai relier plusiers models entre eux je m'explique :

J'ai 3 tables :

User : id , name ...

Followers : id, user_id , followers_id, date

Templates : id , name ...

Dans mon model User j'ai les relations suivantes :

// Peoples I follow public function followings () { return $this->belongsToMany(User::class, 'followers', 'follower_id', 'user_id'); } public function templates () { return $this->hasMany('App\Template'); }

Et dans mon controller j'aimerais recuperer les templates des gens que je follow :

J'aimerais donc faire quelque chose comme ça :

$templates = User::find(Auth::id())->followings->templates;

Merci de vore aide.

1 réponse

rueduphp, il y a 7 ans

Bonjour,

rajoute la relation templates sur le modèle followers et tu pourras récupérer les templates (tu peux la virer de user si elle ne sert à rien)

Je pars du principe qu'il y a une clé user_id sur App\Templates et App\Followers

public function templates () { return $this->hasMany(\App\Template::class, 'user_id', 'user_id'); } $templates = User::find(Auth::id())->followings()->templates;