sql >> Databáze >  >> RDS >> Mysql

Laravel má mnoho parametrů a patříTo

Pro zjednodušení syntaxe si představte return $this->hasMany('App\Comment', 'foreign_key', 'local_key'); parametry jako:

  1. Model, na který chcete odkazovat
  2. Sloupec cizí tabulky (tabulka, na kterou odkazujete), který odkazuje zpět na id sloupec aktuální tabulky (pokud neurčíte třetí parametr, v takovém případě jej použije)
  3. Sloupec aktuální tabulky, který by měl být použit – tj. pokud nechcete, aby cizí klíč druhé tabulky odkazoval na id sloupec aktuální tabulky

Ve vaší situaci proto, že jste použili store_id v libraries stole, usnadnili jste si život. Níže uvedené by mělo fungovat perfektně, pokud je definováno ve vašem Store model:

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

V zákulisí Laravel automaticky propojí id sloupec Store tabulky na store_id sloupec Library tabulka.

Pokud byste to chtěli explicitně definovat, udělali byste to takto:

public function libraries(){
    return $this->hasMany('App\Library', 'store_id','id');
}
  • Standard modelu spočívá v tom, že funkce s jediným názvem vracejí includeTo, zatímco funkce v množném čísle vrací hasMany (tj. $store->libraries() or $library->store() ).


  1. mysql cte. použití s ​​a vložit jej upozorní na chybu syntaxe

  2. Nekompatibilita Openshift a net-ssh? (2.9.3-beta1 vs 2.9.2)

  3. Běžné chyby SQL Serveru

  4. Jak zkontrolovat verzi JDK v Oracle?