За да опростите синтаксиса, помислете за return $this->hasMany('App\Comment', 'foreign_key', 'local_key');
параметри като:
- Моделът, към който искате да свържете
- Колоната на чуждата таблица (таблицата, към която се свързвате), която води обратно към
id
колона на текущата таблица (освен ако не посочите третия параметър, в който случай ще го използва) - Колоната на текущата таблица, която трябва да се използва - т.е. ако не искате външният ключ на другата таблица да се свързва с
id
колона на текущата таблица
Във вашето обстоятелство, защото сте използвали store_id
в libraries
маса, вие улеснихте живота си. По-долу трябва да работи перфектно, когато е дефинирано във вашия Store
модел:
public function libraries()
{
return $this->hasMany('App\Library');
}
Зад кулисите, Laravel автоматично ще свърже id
колона на Store
таблица към store_id
колона на Library
таблица.
Ако искате да го дефинирате изрично, тогава бихте го направили така:
public function libraries(){
return $this->hasMany('App\Library', 'store_id','id');
}
- Стандартът на модела е, че функциите с единично име връщат принадлежатTo, докато функцията за множествено число връща hasMany (т.е.
$store->libraries() or $library->store()
).