Comment créer plusieurs nombreux dans de nombreuses relations pour les deux mêmes tables en utilisant Eloquent dans Laravel
-
21-12-2019 - |
Question
J'ai 2 tables 'utilisateur' et "contenu". Un utilisateur peut être un contenu préféré, alors j'utilise une table pivot user_content pour établir les nombreuses relations entre l'utilisateur et le contenu qu'ils ont porté. C'est bien.
Un utilisateur peut également acheter du contenu.Ce serait la même relation que ci-dessus (user_content) mais serait des données complètement différentes.
Comment configurer une relation comme celle-ci où la relation entre les tables est la même, mais le contenu est différent - peut-il être fait avec succès à Laravel en utilisant Eloquant? Ou y a-t-il une manière complètement différente que je devrais aborder cela?
La solution
Il suffit de configurer une table user_Purchase et user_favorite contenant les champs user_id et content_id
puis configurez le modèle
comme
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 deuxième colonne indique la table pour vérifier les nombreux à de nombreuses relations