sql >> Databasteknik >  >> RDS >> Mysql

Laravel har många och tillhör parametrar

För att förenkla syntaxen, tänk på return $this->hasMany('App\Comment', 'foreign_key', 'local_key'); parametrar som:

  1. Modellen du vill länka till
  2. Kolumnen i den främmande tabellen (tabellen du länkar till) som länkar tillbaka till id kolumn i den aktuella tabellen (såvida du inte anger den tredje parametern, i så fall kommer den att använda den)
  3. Kolumnen i den aktuella tabellen som ska användas - d.v.s. om du inte vill att den främmande nyckeln för den andra tabellen ska länka till id kolumn i den aktuella tabellen

I din omständighet, eftersom du har använt store_id i libraries bord, du har gjort livet enkelt för dig själv. Nedanstående bör fungera perfekt när det definieras i din Store modell:

public function libraries()
{
    return $this->hasMany('App\Library');
}

Bakom kulisserna kommer Laravel automatiskt att länka id kolumnen i Store tabellen till store_id kolumnen i Library bord.

Om du uttryckligen ville definiera det, skulle du göra det så här:

public function libraries(){
    return $this->hasMany('App\Library', 'store_id','id');
}
  • En modellstandard är att funktioner med singularnamn returnerar en belongsTo, medan en pluralfunktion returnerar en hasMany (dvs. $store->libraries() or $library->store() ).


  1. hur lagrar jag PostgreSQL jsonb med SpringBoot + JPA?

  2. använder if and else Stored Procedures MySQL

  3. Skapa tabellvariabel i MySQL

  4. Sök i flera tabeller och visa även tabellnamn i resulterande rader