Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Laravel ma wiele i należy do parametrów

Aby uprościć składnię, pomyśl o return $this->hasMany('App\Comment', 'foreign_key', 'local_key'); parametry jako:

  1. Model, z którym chcesz się połączyć
  2. Kolumna obcej tabeli (tabeli, do której prowadzisz link), która łączy się z id kolumna bieżącej tabeli (chyba że określisz trzeci parametr, w takim przypadku użyje tego)
  3. Kolumna aktualnej tabeli, która powinna być użyta — np. jeśli nie chcesz, aby klucz obcy drugiej tabeli łączył się z id kolumna aktualnej tabeli

W Twojej sytuacji, ponieważ użyłeś store_id w libraries tabeli, ułatwiłeś sobie życie. Poniższe powinno działać idealnie, gdy jest zdefiniowane w Twoim Store model:

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

Za kulisami Laravel automatycznie połączy id kolumna Store tabeli do store_id kolumna Library tabela.

Gdybyś chciał to jednoznacznie zdefiniować, zrobiłbyś to w ten sposób:

public function libraries(){
    return $this->hasMany('App\Library', 'store_id','id');
}
  • Standardem modelowym jest to, że funkcje o pojedynczej nazwie zwracają przynależność do, podczas gdy funkcja w liczbie mnogiej zwraca hasMany (np. $store->libraries() or $library->store() ).


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak mogę filtrować zapytanie według części godzinowej pola DateTime w MySQL?

  2. Metoda przesyłania zdarzeń fullCalendar do MySQL

  3. DOŁĄCZ do trzech stołów

  4. Zapytanie MySql do pobrania wartości atrybutu elementu xml

  5. Jak uzyskać resztę za pomocą MOD() w PostgreSQL, MS SQL Server i MySQL?