Para simplificar a sintaxe, pense no
return $this->hasMany('App\Comment', 'foreign_key', 'local_key');
parâmetros como:- O modelo ao qual você deseja vincular
- A coluna da tabela estrangeira (a tabela à qual você está vinculando) que vincula de volta ao
id
coluna da tabela atual (a menos que você esteja especificando o terceiro parâmetro, nesse caso ele usará isso) - A coluna da tabela atual que deve ser usada - ou seja, se você não quiser que a chave estrangeira da outra tabela seja vinculada ao
id
coluna da tabela atual
Em sua circunstância, porque você usou
store_id
nas libraries
mesa, você facilitou a sua vida. O abaixo deve funcionar perfeitamente quando definido em sua Store
modelo:public function libraries()
{
return $this->hasMany('App\Library');
}
Nos bastidores, o Laravel vinculará automaticamente o
id
coluna da Store
tabela para o store_id
coluna da Library
tabela. Se você quisesse defini-lo explicitamente, faria assim:
public function libraries(){
return $this->hasMany('App\Library', 'store_id','id');
}
- Um modelo padrão é que funções com nome singular retornam um belongsTo, enquanto uma função plural retorna um hasMany (ou seja,
$store->libraries() or $library->store()
).