Como posso criar diferentes de muitos para muitos relacionamentos para as mesmas duas tabelas usando Eloqüente no Laravel

StackOverflow https://stackoverflow.com//questions/21022111

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?

Foi útil?

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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top