Bonjour,
je voulais savoir si il etait possible de faire une relation belongsto -> belongstomany
j'ai une table A qui BelongsTo B et B qui belongsTmany C avec une table pivot.
A : id , B_id
B : id
pivot: B_id , C_id
C : id
je voudrais récupérer A->C
Merci
C'est possible ;) il faut utiliser hasManyThrough
class A
{
public function C()
{
return $this->hasManyThrough(C::class, B::class);
}
}
Bien sur ta classe B doit avoir une function A qui return un belongTo A
tu es sur ? car j'ai une table pivot entre les deux ? hasManyThrough il ne faut pas avoir deux has many ?
javais fais : mais ca prend lid de la table a pour trouver c
$this->belongsTo(B::class)->getRelated()
->belongsToMany(C::class), (new pivot)->getTable());
Alors nope, hasManyThrought c'est comme un hasMany clasique, donc avec un one to many ou un many to many, mais en gros ça veut dire "has many en passant par cette table"
Il s'en fiche du pivot, il regarde la relation, et depuis le modèle B tu fait ta relation en utilisant "using" ton pivot
Après je dis ça à l'aveugle, si c'est trop compliqué faudra peut être oublier la relation et faire une subquery ^^'
Alors il faut en premier un parametre hasmany
Et en deuxieme parametre un intermédiaire (through)