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
idkolonne 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
idkolonne 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()).