For at forenkle syntaksen, tænk på return $this->hasMany('App\Comment', 'foreign_key', 'local_key');
parametre som:
- Den model, du vil linke til
- Kolonnen i den fremmede tabel (den tabel, du linker til), der linker tilbage til
id
kolonne i den aktuelle tabel (medmindre du angiver den tredje parameter, i hvilket tilfælde den vil bruge den) - Kolonnen i den aktuelle tabel, der skal bruges - dvs. hvis du ikke ønsker, at fremmednøglen i den anden tabel skal linke til
id
kolonne i den aktuelle tabel
I din situation, fordi du har brugt store_id
i libraries
bord, du har gjort livet nemt for dig selv. Nedenstående burde fungere perfekt, når det er defineret i din Store
model:
public function libraries()
{
return $this->hasMany('App\Library');
}
Bag kulisserne vil Laravel automatisk linke id
kolonne i Store
tabel til store_id
kolonne i Library
tabel.
Hvis du ønsker at definere det eksplicit, så ville du gøre det sådan her:
public function libraries(){
return $this->hasMany('App\Library', 'store_id','id');
}
- En modelstandard er, at funktioner med enkelt navn returnerer en belongsTo, mens en flertalsfunktion returnerer en hasMany (dvs.
$store->libraries() or $library->store()
).