Como seria para utilizar o hasOne quando a FK é uma chave composta (duas ou mais colunas)?
Sei que para chave não composta seria assim:
public function Usuario()
{
return $this->hasOne('App\Telefone', 'usuario_id', 'telefone_id');
}
Como seria para utilizar o hasOne quando a FK é uma chave composta (duas ou mais colunas)?
Sei que para chave não composta seria assim:
public function Usuario()
{
return $this->hasOne('App\Telefone', 'usuario_id', 'telefone_id');
}
Oi, Erika!
O Eloquent por padrão não suporta isso.
Acho que vale analisar a necessidade de ter chaves múltiplas. Se realmente precisar (o que não é tão comum quanto parece), você pode utilizar este pacote:
Vinicius, obrigada!
O problema é que estou trabalhando com um sistema legado e quase todas as tabelas possuem PK e FK compostas. A ideia inicial é não mexer no modelo do banco da dados. Você enxerga alguma outra implicação, como por exemplo, lentidão?
Ah sim, Erika. Entendi.
Então, não sou expert em Banco de Dados a ponto de responder se haveria alguma implicação. Até onde meu conhecimento chega, acredito que a implicação acabe na dificuldade de manutenção apenas.
Mas, concordo com você que o ideal é não alterar a estrutura do banco neste momento. Eu indicaria ainda você dar uma olhada no projeto https://www.laraveldoctrine.org/ pra ver se seria interessante pra você. Doctrine é mais poderoso e configurável, logo pode ser melhor para bancos legados.