Om de syntaxis te vereenvoudigen, denk aan de return $this->hasMany('App\Comment', 'foreign_key', 'local_key');
parameters als:
- Het model waarnaar u wilt linken
- De kolom van de buitenlandse tabel (de tabel waarnaar u linkt) die teruglinkt naar de
id
kolom van de huidige tabel (tenzij u de derde parameter specificeert, in welk geval het die zal gebruiken) - De kolom van de huidige tabel die moet worden gebruikt - d.w.z. als u niet wilt dat de externe sleutel van de andere tabel naar de
id
linkt kolom van de huidige tabel
In jouw geval, omdat je store_id
. hebt gebruikt in de libraries
tafel, je hebt het jezelf gemakkelijk gemaakt. Het onderstaande zou perfect moeten werken als het is gedefinieerd in uw Store
model:
public function libraries()
{
return $this->hasMany('App\Library');
}
Achter de schermen koppelt Laravel automatisch de id
kolom van de Store
tabel naar de store_id
kolom van de Library
tafel.
Als je het expliciet wilt definiëren, dan zou je het als volgt doen:
public function libraries(){
return $this->hasMany('App\Library', 'store_id','id');
}
- Een modelstandaard is dat enkelvoudig benoemde functies een behoortTo retourneren, terwijl een meervoudsfunctie een hasMany retourneert (dwz
$store->libraries() or $library->store()
).