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
idkolom 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
idlinkt 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()).