Um die Syntax zu vereinfachen, denken Sie an den return $this->hasMany('App\Comment', 'foreign_key', 'local_key');
Parameter als:
- Das Modell, das Sie verlinken möchten
- Die Spalte der fremden Tabelle (der Tabelle, mit der Sie verknüpfen), die auf die
id
zurückverweist Spalte der aktuellen Tabelle (es sei denn, Sie geben den dritten Parameter an, in diesem Fall wird dieser verwendet) - Die Spalte der aktuellen Tabelle, die verwendet werden soll - d.h. wenn Sie nicht möchten, dass der Fremdschlüssel der anderen Tabelle auf die
id
verweist Spalte der aktuellen Tabelle
In Ihrem Fall, weil Sie store_id
verwendet haben in den libraries
Tisch haben Sie sich das Leben leicht gemacht. Das Folgende sollte perfekt funktionieren, wenn es in Ihrem Store
definiert ist Modell:
public function libraries()
{
return $this->hasMany('App\Library');
}
Hinter den Kulissen verknüpft Laravel automatisch die id
Spalte des Store
Tabelle zur store_id
Spalte der Library
Tabelle.
Wenn Sie es explizit definieren wollten, würden Sie es so machen:
public function libraries(){
return $this->hasMany('App\Library', 'store_id','id');
}
- Ein Modellstandard ist, dass Funktionen mit Singularnamen ein gehörtzu zurückgeben, während eine Pluralfunktion ein hasMany zurückgibt (z. B.
$store->libraries() or $library->store()
). ).