Para simplificar la sintaxis, piense en return $this->hasMany('App\Comment', 'foreign_key', 'local_key');
parámetros como:
- El modelo al que desea vincular
- La columna de la tabla externa (la tabla a la que se está vinculando) que se vincula con el
id
columna de la tabla actual (a menos que esté especificando el tercer parámetro, en cuyo caso lo usará) - La columna de la tabla actual que debe usarse, es decir, si no desea que la clave externa de la otra tabla se vincule al
id
columna de la tabla actual
En su caso, porque ha utilizado store_id
en las libraries
table, te has hecho la vida más fácil. Lo siguiente debería funcionar perfectamente cuando se define en su Store
modelo:
public function libraries()
{
return $this->hasMany('App\Library');
}
Detrás de escena, Laravel vinculará automáticamente el id
columna de la Store
tabla al store_id
columna de la Library
mesa.
Si quisiera definirlo explícitamente, lo haría así:
public function libraries(){
return $this->hasMany('App\Library', 'store_id','id');
}
- Un modelo estándar es que las funciones con nombres singulares devuelven un pertenece a, mientras que una función en plural devuelve un hasMany (es decir,
$store->libraries() or $library->store()
).