Je les tableaux suivants:Utilisation de hasManyThrough dans la requête Relation
users
id|name|username
Areas
id|name
user_area
id|user_id|area_id
Buildings
id|name|area_id
Dans les modèles de l'utilisateur que je veux appeler requête que tous les utilisateurs ont ses zones affectées et ses zones affectées possède de nombreux bâtiments, donc je créé une méthode Modèle utilisateur qui interroge les bâtiments affectés par l'utilisateur. Dans App \ User Modèle:
public function areas()
{
return $this->belongsToMany('App\Area','area_user');
}
public function UserBuildings(){
return $this>hasManyThrough('App\Building','App\Area','user_id','area_id');
}
Dans App \ Zone Modèle:
public function users(){
return $this->belongsToMany('App\User','area_user','area_id','user_id');
}
public function buildings(){
return $this->hasMany('App\Building');
}
Dans App \ Modèle de construction:
public function areas(){
$this->belongsTo('App\Area');
}
Comment structurer i une méthode de relation dans le modèle de l'utilisateur qui obtiennent les bâtiments assignés à l'utilisateur.
Merci
Merci pour votre réponse, j'ai essayé votre question ci-dessus dans mon contrôleur. Erreur démontrant: Symfony \ Composant \ Debug \ Exception \ FatalThrowableError (E_ERROR) appel à une fonction membre getRelationExistenceQuery() sur null ==================== Essayé de comprendre où le problème, j'ai remarqué que lorsque je demande le nom de zone de l'ID de bâtiment spécifié, erreur montrant: >>> App \ Building :: find (1) -> zone Erreur PHP: Essayer d'obtenir la propriété de non-objet sur la ligne 1 >>> – user2873860
@ user2873860 cette erreur n'est pas liée à ce code. –
Lorsque j'ai supprimé le code, l'erreur a disparu. donc je pense que c'est lié – user2873860