Pregunta

Tengo 2 mesas de usuario 'y' contenido '. Un usuario puede tener contenido favorito, por lo que utilizo una tabla de pivote user_content para establecer las muchas a muchas relaciones entre el usuario y el contenido que tienen fiboured. Esto está bien.

Un usuario también puede comprar contenido.Esta sería la misma relación que arriba (user_content), pero sería datos completamente diferentes.

¿Cómo configuro una relación como esta donde la relación entre las tablas es la misma, pero el contenido es diferente? ¿Se puede hacer esto con éxito en Laravel usando elocuent? ¿O hay una forma completamente diferente a la que debería estar acercando a esto?

¿Fue útil?

Solución

Simplemente configure una tabla user_purchase y user_favorite ambos que contienen user_id y content_id campos

luego configure el modelo

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

La segunda columna indica qué tabla para verificar las muchas en muchas relaciones

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top