Laravel Eloquent Join 2 Tabellen
Diese sind meine Modelle:
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');
}
}
In der Abteilung Tabelle habe ich eine Spalte mit Fremdschlüssel user_id
dass links zu Benutzer-Tabelle.
In der Fakultät Tabelle habe ich eine Spalte mit Fremdschlüssel branch
die links verzweigen Tabelle mit Spalte name
.
Und jetzt muss ich abrufen Fakultät Daten basierend auf den aktuell angemeldeten Benutzer (mit Eloquent).
Ich mir vorstellen, die Arbeit fließen würde:
- abrufen der id des derzeit angemeldeten Benutzers
- link, der die id der Niederlassung
user_id
und abrufen Niederlassungname
- link, Niederlassung
name
Fakultät der Niederlassungname
und abrufen alle abgestimmt Fakultät Daten
Nun das ist, was ich versucht habe, es hat nicht funktioniert:
$user_id = Sentry::getUser();
$faculty = Faculty::with('branch')->where('branch.user_id',$user->id)->get();
Fehler sagt:
Unbekannte Spalte 'Zweig.user_id' in 'where-Klausel' (SQL: select * from
tb_faculty
wobranch
.user_id
= 6)
Wie kann ich erreichen, das mit Eloquent?
Du musst angemeldet sein, um einen Kommentar abzugeben.
also, erste Möglichkeit:
zweite Möglichkeit:
wenn Fakultäten basieren auf den Namen, dann:
Dann tun Sie dies:
dann in der Ansicht:
return $this->hasMany('Faculty', 'branch_name', 'name');
. Vielen Dank 😀