För att förenkla syntaxen, tänk på return $this->hasMany('App\Comment', 'foreign_key', 'local_key');
parametrar som:
- Modellen du vill länka till
- Kolumnen i den främmande tabellen (tabellen du länkar till) som länkar tillbaka till
id
kolumn i den aktuella tabellen (såvida du inte anger den tredje parametern, i så fall kommer den att använda den) - Kolumnen i den aktuella tabellen som ska användas - d.v.s. om du inte vill att den främmande nyckeln för den andra tabellen ska länka till
id
kolumn i den aktuella tabellen
I din omständighet, eftersom du har använt store_id
i libraries
bord, du har gjort livet enkelt för dig själv. Nedanstående bör fungera perfekt när det definieras i din Store
modell:
public function libraries()
{
return $this->hasMany('App\Library');
}
Bakom kulisserna kommer Laravel automatiskt att länka id
kolumnen i Store
tabellen till store_id
kolumnen i Library
bord.
Om du uttryckligen ville definiera det, skulle du göra det så här:
public function libraries(){
return $this->hasMany('App\Library', 'store_id','id');
}
- En modellstandard är att funktioner med singularnamn returnerar en belongsTo, medan en pluralfunktion returnerar en hasMany (dvs.
$store->libraries() or $library->store()
).