Como posso criar diferentes de muitos para muitos relacionamentos para as mesmas duas tabelas usando Eloqüente no Laravel
-
21-12-2019 - |
Pergunta
Eu tenho 2 tabelas 'Usuário' e 'Conteúdo'.Um usuário pode conteúdos favoritos, então eu uso uma tabela dinâmica User_Content para estabelecer o relacionamento de muitos para muitos entre o usuário e o conteúdo que eles têm liked.Isso é bom.
Um usuário também pode comprar conteúdo.Isso seria a mesma relação acima (User_Content), mas seria completamente diferente de dados.
Como faço para configurar um relacionamento como este, onde o relacionamento entre tabelas é o mesmo, mas o conteúdo é diferente - isso pode ser feito com êxito no Laravel usando Eloqüente?Ou existe uma maneira completamente diferente de como eu deveria estar a aproximar-se deste?
Solução
Basta configurar uma user_purchase e user_favorite tabela ambas contendo user_id e content_id campos
em seguida, configure o modelo de
como
class User extends Eloquent{
public function purchases()
{
return $this->belongsToMany('Content','user_purchase');
}
public function favorites()
{
return $this->belongsToMany('Content','user_favorite');
}
}
class Content extends Eloquent{
public function buyers()
{
return $this->belongsToMany('User','user_purchase');
}
public function favorites()
{
return $this->belongsToMany('User','user_favorite');
}
}
A segunda coluna indica a tabela para verificar o relacionamento muitos-para-muitos