J'ai modèles A, B et C. Une relation hasOne avec B et la relation B hasMany avec C.Comment puis-je récupérer des données d'un modèle relationnel distant dans Laravel Eloquent en utilisant le chaînage de méthodes?
//Model Code
class A extends Model
{
//This relates A and B
public function relateBC(){
return $this->hasOne('App\B','aid','aid');
}
}
class B extends Model
{
//Inverse relationship with Model A
public function relateBC(){
return $this->belongsTo('App\A','aid','aid');
}
//This relates B and C
public function relateBC(){
return $this->hasMany('App\C','bid','bid');
}
}
class C extends Model
{
//Inverse relationship with Model B
public function post(){
return $this->belongsTo('App\B','bid','bid');
}
}
Ci-dessous les données de retour de code du modèle B
App\A::find(id)->relateAB()->get();
Ci-dessous les données de retour du code de modèle C
App\B:find(id)->relateBC()->get();
Le code ci-dessous renvoie BadMethodException. La méthode relationBC() n'existe pas.
App\A::find(id)->relateAB->relateBC()->get();
.
Bienvenue sur StackOverflow. S'il vous plaît, pourriez-vous fournir un code de votre problème spécifique. Cela prouve à quel point vous avez essayé et cela aidera les autres membres à mieux comprendre votre problème, à ce moment-là, vous leur donnerez un contexte de votre problème. S'il vous plaît, vérifiez ces liens: https://stackoverflow.com/help/mcve et https://stackoverflow.com/help/how-to-ask –