sql >> Database teknologi >  >> RDS >> Mysql

Laravel har mange og tilhører parametre

For at forenkle syntaksen, tænk på return $this->hasMany('App\Comment', 'foreign_key', 'local_key'); parametre som:

  1. Den model, du vil linke til
  2. 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)
  3. 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() ).


  1. Kan ikke slippe en MySQL-tabel på grund af fremmednøglebegrænsninger

  2. MySQL – FOUND_ROWS() Funktion for det samlede antal berørte rækker

  3. Er der en bedre Oracle-operatør til at udføre nul-sikker ligestillingskontrol?

  4. Advarsel:mysqli_query():Kunne ikke hente mysqli