0
votes

Laravel Eloquant - Relations imbriquées avec impatience

J'ai les 3 tables suivantes:

  • Posts Li>
  • Commentaires LI>
  • Tags Li> ul>

    messages: p> xxx pré>

    commentaires: p> xxx pré>

    tags: p>

    {
       'id' : 1,
       'title' : 'bla bla',
       'created_at: 'some date',
       'comments':[{
                      'id' : 322,
                      'active' : true
                      'post_id' : 1,
                      'created_at: 'some date',
                      'tags_ids' : [1,2,3],
                      'tags' : [
                                {'id' : 1,'description' : 'some description1'},
                                {'id' : 2,  'description' : 'some description2'},
                                {'id' : 3,'description' : 'some description3'}
                               ],
                  }
                 ]
    }
    
    


2 commentaires

S'il vous plaît ajouter votre structure de 3 tables


La relation entre commentaires et tags est de 1-N? Ensuite, le champ de terrain est manquant dans la table Tags. Mais vous devriez penser à une relation N-M.


3 Réponses :


1
votes

Vous pouvez utiliser xxx

il chargera tous les commentaires ainsi que les commentaires.tags

link https://laravel.com/docs/6.x/eloquent-relationships dans link Recherche Loading désireux imbriqué


0 commentaires

2
votes

Vous avez défini vos relations erronées. Vous avez tags_ids en tant que tableau dans votre modèle de commentaire, mais au lieu de cela, vous avez besoin de nombreuses relations pour vos balises. Pour implémenter cela, vous devez définir une nouvelle table commentaire-tag : xxx

puis dans vous commentaire Modèle modifier Tags < / Code> relation comme ceci: xxx

l'inverse de cette relation est la suivante: xxx

puis sur les relations imbriquées avec impatience , vous pouvez utiliser la syntaxe "DOT": xxx

voir beaucoup à plusieurs relations sur Documents Laravel pour plus d'informations.


5 commentaires

Retourne toujours la réponse vide sur les tags


Hafez merci pour votre réponse. Quel est l'inverse dans le modèle de balise?


@Avior j'ai ajouté l'inverse à mon post.


Et si je ne peux pas créer une autre table? Je dois utiliser la colonne IDS Tags dans le modèle de commentaire pour lier entre les balises et les commentaires. Je peux avoir un message avec 30 commentaires et chaque commentaire a 5 étiquettes différentes associées ... Je ne peux pas utiliser quelque chose comme dans la relation sur la relation?


@Avior Vous pouvez obtenir des balises d'un commentaire à l'aide de la requête Builder et dans laquelle mais vous ne pouvez pas définir une relation comme celle-ci



0
votes

Mise à jour: vous devez corriger votre schéma de base de données

La structure de la table va comme ceci: xxx


2 commentaires

Bien que le nom de la relation soit faux, mais ce n'est pas lié à la question AN n'est pas utilisé dans la requête. I.e. L'inverse des Commentaires-> balises relation Tag-> commentaire et post-> utilisateur n'est pas utilisé ici.


Oui, c'est sûr, c'est une relation classique onetomanany