Come posso creare diversi molte a molte relazioni per gli stessi due tavoli usando Eloquente a Laravel

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

Domanda

Ho 2 tavoli 'utente' e 'content'. Un utente può contenuto preferito, quindi uso un tavolo pivot user_content per stabilire le molte a molte relazioni tra l'utente e il contenuto che hanno favorito. Questo va bene.

Un utente può anche acquistare contenuti.Questa sarebbe la stessa relazione di cui sopra (User_Content) ma sarebbe un dato completamente diverso.

Come configurare una relazione come questa in cui la relazione tra le tabelle è la stessa, ma il contenuto è diverso - può essere fatto con successo a Laravel usando eloquente? O c'è un modo completamente diverso che dovrei avvicinarsi a questo?

È stato utile?

Soluzione

Basta configurare una tabella utente_purchase e user_favorite sia contenenti campi utente_id e content_id

Quindi configurare il modello

AS

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');
    }
}
.

La seconda colonna indica quale tabella controllare le molte a molte relazioni

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top