IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

problème avec repository Query


Sujet :

Symfony PHP

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2014
    Messages : 174
    Points : 113
    Points
    113
    Par défaut problème avec repository Query
    bonjour ,
    je veux faire Quiz avec Symfony bon j'ai creer 3 entity (Quiz,Question,Choix).

    je veux afficher les choix associer au question je sais pas comment faire voici ce que j'ai fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public function voirQuizAction($id)
       {
           $em = $this->getDoctrine()->getManager();
           $quiz = $em->getRepository('ITLessonsQuizBundle:Quiz')->find($id);
           $listQuestions = $em->getRepository('ITLessonsQuizBundle:Question')->findBy(array('quiz' => $id));
           $listChoix = $em->getRepository('ITLessonsQuizBundle:Choix')->findBy(array('question' => ? ));
           return new Response('test');
       }

  2. #2
    Membre expert
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Points : 3 004
    Points
    3 004
    Par défaut
    afficher toutes les questions et leurs choix associés ?
    ou afficher une question précise avec ces choix associés ?


    l'un ou l'autre, tu ferais comment en sql pure ?

  3. #3
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2013
    Messages
    739
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2013
    Messages : 739
    Points : 1 022
    Points
    1 022
    Par défaut
    Bonjour,
    je comprends pas exactement ce que tu cherche mais la je vois que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     $listChoix = $em->getRepository('ITLessonsQuizBundle:Choix')->findBy(array('question' => ? ));
    est incorrecte . Tu peux la mettre dans une boucle foreach pour parcourir les question et les passer un par par un à la place de " ? "

  4. #4
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2014
    Messages : 174
    Points : 113
    Points
    113
    Par défaut
    Bonjour ,
    je veux afficher tout les question et les choix associer a un quiz voici un ami m'a aider a faire une fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public function findWithQandC($id) {
            $qb = $this->createQueryBuilder('q');
            $qb->join('q.questions', 'q2') 
                    ->addSelect('q2')
                    ->join('q2.choices', 'c') 
                    ->addSelect('c')
                    ->where($qb->expr()->eq('q.id', ':id'))
                    ->setParameter('id', $id);
            return $qb->getQuery()->getOneOrNullResult();
    mais le problème quand je veux afficher dans twig il s'affiche rien voici mon contrôleur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
      public function voirAction($id)
        {
            $questionsAndChoices = $this->getDoctrine()->getManager()->getRepository('ITLessonsQuizBundle:Quiz')->findWithQandC($id);
     
            return $this->render('ITLessonsQuizBundle:Quiz:Quiz.html.twig',array('questionsAndChoices'=>$questionsAndChoices));
        }
    template Twig
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    {% for questionAndChoix in questionsAndChoices%}
    {{questionAndChoix.quiz.nom}}
    {% endfor %}
    Aucun erreur ne se déclenche je dump sur la variable $questionsAndChoices je trouve qu’il arrive a remplir les attributs mais rien ne s'affiche dans le twig.

  5. #5
    Membre expert
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Points : 3 004
    Points
    3 004
    Par défaut
    montre le dump

    tu peux faire un dump dans twig, comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    {% for questionAndChoix in questionsAndChoices%}
      {{ dump(questionAndChoix ) }}
    {% endfor %}

  6. #6
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2014
    Messages : 174
    Points : 113
    Points
    113
    Par défaut
    il affiche rien quand je dump au niveau de twig

  7. #7
    Membre expert
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Points : 3 004
    Points
    3 004
    Par défaut
    dans twig:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    {% if not questionsAndChoices is defined %}
        no defined ! :(
    {% endif %}
     
     
    {{ dump(questionsAndChoices) }}
    et ça ?

  8. #8
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2014
    Messages : 174
    Points : 113
    Points
    113
    Par défaut
    Citation Envoyé par dukoid Voir le message
    dans twig:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      {{ dump(questionsAndChoices) }}
    et ça ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Quiz {#462 ▼
      -questions: PersistentCollection {#455 ▶}
      -id: 4
      -nom: "quiz1"
      -description: "pas de description"
    }

  9. #9
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2014
    Messages : 174
    Points : 113
    Points
    113
    Par défaut
    j'ai que 2 attribut pour le moment nom et description dans entite quiz c'est pour cela il n'affiche pas dateCreation,nbreQuestion.

  10. #10
    Membre expert
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Points : 3 004
    Points
    3 004
    Par défaut
    tu peux voire que questions est une collection donc tu peux iterer que sur celui ci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    {% for questionAndChoix in questionsAndChoices%}
      {{ dump(questionAndChoix.questions ) }}
    {% endfor %}
    mais à mon avis ta requete est fausse !!

    si tu débutes, c'est mieux de faire ta requête en sql pure d'abord via phpmyadmin
    ensuite quand ça marche tu peux le traduire en doctrine.

  11. #11
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2014
    Messages : 174
    Points : 113
    Points
    113
    Par défaut
    tu peux me donner la réponse parce que je fais un projet et je suis bloquer j'ai essayer beaucoup de requete mais sa ne fonctionne pas .
    quand j'itere sur questions il s'affiche rien

  12. #12
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2014
    Messages : 174
    Points : 113
    Points
    113
    Par défaut
    Quand je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {{ dump(questionsAndChoices ) }}
    il s'affiche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    Quiz {#462 ▼
      -questions: PersistentCollection {#455 ▼
        -snapshot: array:1 [1]
        -owner: Quiz {#462}
        -association: array:15 [15]
        -em: EntityManager {#112 …10}
        -backRefFieldName: "quiz"
        -typeClass: ClassMetadata {#416 …}
        -isDirty: false
        -initialized: true
        -coll: ArrayCollection {#409 ▼
          -elements: array:1 [0 => Question {#461 ▼
              -quiz: Quiz {#462}
              -choices: PersistentCollection {#460 ▼
                -snapshot: array:2 [2]
                -owner: Question {#461}
                -association: array:15 [15]
                -em: EntityManager {#112 …10}
                -backRefFieldName: "question"
                -typeClass: ClassMetadata {#435 …}
                -isDirty: false
                -initialized: true
                -coll: ArrayCollection {#459 ▼
                  -elements: array:2 [0 => Choix {#454 ▼
                      -question: Question {#461}
                      -id: 3
                      -reponse: "reponse1"
                      -isTrue: true
                    }
                    1 => Choix {#453 ▼
                      -question: Question {#461}
                      -id: 4
                      -reponse: "reponse2"
                      -isTrue: false
                    }
                  ]
                }
              }
              -id: 4
              -question: "Question1"
            }
          ]
        }
      }
      -id: 4
      -nom: "quiz1"
      -description: "pas de description"
    }

  13. #13
    Membre expert
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Points : 3 004
    Points
    3 004
    Par défaut
    tu peux voir que tu as des collections imbriqués ç doit te mettre la puce à l'oreille...


    genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    {% for liste in listes %}
      {{ liste.var }}
      {% for liste2 in liste %}
        {{ liste2.var2 }}
        {% for liste3 in liste2 %}
          {{ liste3.var3 }}
        {% endfor %}
      {% endfor %}
    {% endfor %}

  14. #14
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2014
    Messages : 174
    Points : 113
    Points
    113
    Par défaut
    oui mais j'ai pas trouver une autre solution et je sais pas comment les afficher avec ces collections imbriquées :/ je suis vraiment bloqué j'ai perdu 2 jour a cause de ce problème .

  15. #15
    Membre expert
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Points : 3 004
    Points
    3 004
    Par défaut
    et ça ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    {% for questionAndChoix in questionsAndChoices%}
      {{ dump(questionAndChoix.questions ) }}
    {% endfor %}

  16. #16
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2014
    Messages : 174
    Points : 113
    Points
    113
    Par défaut
    page vide quand j'utilise boucle il n'affiche rien .

  17. #17
    Membre expert
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Points : 3 004
    Points
    3 004
    Par défaut
    alors l'astuce est d'utiliser ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    {% for key,value in questionsAndChoices %}
        Key : {{ key }}
        Value : {{ value }}
    {% endfor %}
    avec ça, tu pourras te débrouiller ...

  18. #18
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2014
    Messages : 174
    Points : 113
    Points
    113
    Par défaut
    :/ il s'affiche rien

  19. #19
    Membre expert
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Points : 3 004
    Points
    3 004
    Par défaut
    j'ai été voir ta requête doctrine


    remplace:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     return $qb->getQuery()->getOneOrNullResult();
    par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     return $qb->getQuery()->getResult();
     
    et après en :
     return $qb->getQuery()->getArrayResult();

  20. #20
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2014
    Messages : 174
    Points : 113
    Points
    113
    Par défaut
    woow sa marche merci beaucoup attend je vais tester d'afficher tout .

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Problème avec Heterogeneous queries require the ANSI_NULLS
    Par ulmeen dans le forum Développement
    Réponses: 3
    Dernier message: 08/10/2012, 10h51
  2. Réponses: 0
    Dernier message: 03/11/2010, 17h09
  3. Problème avec SQL Query
    Par e1lauren dans le forum Hibernate
    Réponses: 1
    Dernier message: 24/08/2007, 18h15
  4. Réponses: 3
    Dernier message: 26/04/2006, 21h45
  5. Problème avec RegEx et une Query string
    Par Erakis dans le forum Langage
    Réponses: 6
    Dernier message: 08/11/2005, 15h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo