Laravel Éloquent Joindre 2 Tables
Ce sont mes modèles:
class Branch extends Eloquent {
protected $table = 'tb_branch';
public function faculty()
{
return $this->hasMany('Faculty');
}
}
class Faculty extends Eloquent {
protected $table = 'tb_faculty';
public function branch()
{
return $this->belongsTo('Branch');
}
}
En direction de la table, j'ai mis une colonne de clé étrangère user_id
que des liens vers table des utilisateurs.
À la faculté de table, j'ai mis une colonne de clé étrangère branch
, qui mène en direction de la table avec les colonnes de name
.
Et maintenant j'ai besoin de récupérer de la Faculté des données basées sur l'utilisateur actuellement connecté (avec Éloquent).
J'imagine que le flux de travail serait:
- récupérer l'id de l'utilisateur actuellement connecté
- lien que l'id de la direction générale
user_id
et de récupérer de la direction générale dename
- lien de la direction générale de
name
à la faculté de la direction générale dename
et de récupérer tous appariés faculté de données
Maintenant, c'est ce que j'ai essayé, ça ne marchait pas:
$user_id = Sentry::getUser();
$faculty = Faculty::with('branch')->where('branch.user_id',$user->id)->get();
D'erreur dit:
Inconnu de la colonne de direction générale.user_id' in 'where clause' (SQL: select * from
tb_faculty
oùbranch
.user_id
= 6)
Comment puis-je réaliser cela avec Éloquent?
Vous devez vous connecter pour publier un commentaire.
donc, première manière:
deuxième façon:
si les facultés sont basés sur le nom, puis:
Ensuite ce faire:
puis dans la vue:
return $this->hasMany('Faculty', 'branch_name', 'name');
. Merci beaucoup 😀