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 :

Explode dans symfony 2


Sujet :

Symfony PHP

  1. #1
    Nouveau membre du Club
    Inscrit en
    Août 2002
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 94
    Points : 27
    Points
    27
    Par défaut Explode dans symfony 2
    Bonjours à tous,

    Je travaille sur un projet qui me demande de lister un champ (Mysql) en colonne et non sur une seule ligne. Malheureusement je ne suis pas encore suffisament familier avec Symfony 2 pour le faire.

    Merci d'avance

  2. #2
    Membre régulier Avatar de khand
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2008
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2008
    Messages : 120
    Points : 118
    Points
    118
    Par défaut
    Salut,

    Je pense qu'il te suffit de récupérer la valeur de ton champ et ensuite d'utiliser l'explode du PHP

    Bonne soirée.
    "Rather than love, than monney, than faith, than
    fame, than fairness, give me truth."

  3. #3
    Nouveau membre du Club
    Inscrit en
    Août 2002
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 94
    Points : 27
    Points
    27
    Par défaut merci mais
    Est-ce possible dans une page twig

  4. #4
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 619
    Points : 188 605
    Points
    188 605
    Par défaut
    C'est possible, mais il me semble que c'est mieux à faire dans le contrôleur (plutôt même le modèle, si tu veux faire du propre).
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  5. #5
    Nouveau membre du Club
    Inscrit en
    Août 2002
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 94
    Points : 27
    Points
    27
    Par défaut Est-ce comme cela
    Je vous montre le code je ne comprends pas bien alors si vous avez une solution pour moi...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $em = $this->getDoctrine()->getEntityManager();
     
            $entities = $em->getRepository('AdminVocabulaireBundle:voc')->findAll();
            $exp = explode(' ',$entities);
            return array('entities' => $exp);

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 146
    Points : 262
    Points
    262
    Par défaut
    Ha oui effectivement tu as rater quelques trucs

    Tu devrais relire ce passage de la documentation de twig :

    http://www.twig-project.org/doc/templates.html#for

    Ou un exemple plus complet :

    http://www.dobervich.com/2011/03/15/...ing-doctrine2/

    Ton $entitites est déjà un objet contenant toutes les lignes. Tu n'as donc pas besoin de l'explode tout va bien se faire dans ton template.

  7. #7
    Nouveau membre du Club
    Inscrit en
    Août 2002
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 94
    Points : 27
    Points
    27
    Par défaut ???
    Si je comprends bien

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <h1>Members</h1>
    <ul>
      {% for user in users %}
        <li>{{ user.username|e }}</li>
      {% endfor %}
    </ul>
    devrait faire l'affaire, mais cela ne fonctionne pas...

    merci encore de vos précieux conseils

  8. #8
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 619
    Points : 188 605
    Points
    188 605
    Par défaut
    Citation Envoyé par jillthe1 Voir le message
    mais cela ne fonctionne pas...
    Dit comme cela, ça fonctionne parfaitement, avec toutes les fonctionnalités demandées, y compris celles qui ne sont pas implémentées.

    Quels sont les messages d'erreur auxquels tu as droit ? Nos boules de cristal ne sont pas encore arrivées...
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  9. #9
    Nouveau membre du Club
    Inscrit en
    Août 2002
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 94
    Points : 27
    Points
    27
    Par défaut Désolé
    Il n'y a aucun message d'erreur seulement je n'arrive pas à faire une colonne à la place d'une ligne...

    j'obtiens ce la:

    Aujourd'hui demain hier jamais tranquillement petit demain progressivement

    mais je veux cela

    Aujourd'hui
    demain
    hier
    jamais
    tranquillement
    petit
    demain
    progressivement
    merci encore

  10. #10
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 619
    Points : 188 605
    Points
    188 605
    Par défaut
    Et tout cela provient d'un seul et même champ dans un seul et même enregistrement dans ta base de données, c'est bien ça ? Dans ce cas, explode(' ', $var) suffira. Mais le code que tu as montré ne représente pas ça : là, tu récupères tous les enregistrements de la table.

    Sans ORM, quelle requête effectuerais-tu sur la table ? Quel est son schéma (plutôt la définition de l'entité, vu que c'est avec ça que tu devras travailler) ?
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  11. #11
    Nouveau membre du Club
    Inscrit en
    Août 2002
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 94
    Points : 27
    Points
    27
    Par défaut Merci de prendre du temps
    Voici le code dans l'entité

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    /**
         * @var string $mots
         *
         * @ORM\Column(name="mots", type="string", length=500)
         */
        private $mots;
    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
     /**
         * Set mots
         *
         * @param string $mots
         */
        public function setMots($mots)
        {
            $this->mots = $mots;
        }
     
        /**
         * Get mots
         *
         * @return string 
         */
        public function getMots()
        {
            return $this->mots;
        }
    je connais la requête en php mais avec symfony je suis un peu perdu pour récupérer les données et les afficher(le generateur fait tout sans probleme) sauf un explode...

  12. #12
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 619
    Points : 188 605
    Points
    188 605
    Par défaut
    J'aurais donc plutôt fait ça ($id étant l'identifiant de l'enregistrement que tu veux) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $em = $this->getDoctrine()->getEntityManager();
     
            $entity = $em->getRepository('AdminVocabulaireBundle:voc')->findOneBy($id);
            return array('entities' => explode(' ', $entity));
    Par contre, je te rappelle la première forme normale des bases de données, qui contient notamment le principe d'atomicité de l'information ! http://sqlpro.developpez.com/cours/standards/#L2.2.
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  13. #13
    Nouveau membre du Club
    Inscrit en
    Août 2002
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 94
    Points : 27
    Points
    27
    Par défaut
    Merci,
    Mais j'ai encore un souci

    voici: l'erreur


    Notice: Undefined variable: id in C:\wamp\www\Admin\src\Admin\PublicBundle\Controller\PublicController.php line 77

    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
     
     
     
    /**
         * @Route("/vocabulaire", name="devoirs_voc")
         * @Template()
         */
        public function vocabulaireAction()
     
     
        {
            $em = $this->getDoctrine()->getEntityManager();
     
            $entity = $em->getRepository('AdminVocabulaireBundle:voc')->findOneBy($id);
            return array('entities' => explode(' ', $entity));
     
        }

  14. #14
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 619
    Points : 188 605
    Points
    188 605
    Par défaut
    Citation Envoyé par jillthe1 Voir le message
    Mais j'ai encore un souci
    Citation Envoyé par dourouc05 Voir le message
    $id étant l'identifiant de l'enregistrement que tu veux
    Je ne peux pas savoir comment tu veux choisir ton enregistrement !
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  15. #15
    Nouveau membre du Club
    Inscrit en
    Août 2002
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 94
    Points : 27
    Points
    27
    Par défaut
    Le id c'est ok mais ça ne fonctionne pas

  16. #16
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 619
    Points : 188 605
    Points
    188 605
    Par défaut
    Quel id veux-tu ? Il suffit de remplacer $id par ça. Tu peux aussi le récupérer en paramètre d'une route.
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  17. #17
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 146
    Points : 262
    Points
    262
    Par défaut
    Citation Envoyé par jillthe1 Voir le message
    Si je comprends bien

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <h1>Members</h1>
    <ul>
      {% for user in users %}
        <li>{{ user.username|e }}</li>
      {% endfor %}
    </ul>
    devrait faire l'affaire, mais cela ne fonctionne pas...

    merci encore de vos précieux conseils
    Si tu as bien une ligne en base par ligne que tu veux ce qui a l'air d'être le cas d'après ton post d'après.

    C'est plus un soucis de html que de symfony.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <h1>Members</h1>
      {% for user in users %}
        {{ user.username|e }}br />
      {% endfor %}

    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <h1>Members</h1>
      {% for user in users %}
        <div>{{ user.username|e }}</div>
      {% endfor %}

  18. #18
    Nouveau membre du Club
    Inscrit en
    Août 2002
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 94
    Points : 27
    Points
    27
    Par défaut
    J'ai mis dans mon controller le code que tu m'as donnée. Mais l'erreur

    Notice: Undefined variable: id in C:\wamp\www\Admin\src\Admin\PublicBundle\Controller\PublicController.php line 77
    500 Internal Server Error - ErrorException

    apparait...je ne comprends pas..
    PS je demande à mon controller PublicBundle d'aller chercher entity dans AdminVocabulaireBundle est-ce le problème.. Mais je ne crois pas puisque je peux afficher les données sauf qu'elles ne sont pas en colonne.

    merci je sais que je demande beaucoup j'espère pouvoir donner un de ces jours

  19. #19
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 619
    Points : 188 605
    Points
    188 605
    Par défaut
    Le problème est pourtant simple : tu utilises une variable qui n'existe pas. Il faut donc la définir d'une manière ou d'une autre. Là, nous ne pouvons pas te présenter du code à copier-coller, ce que tu sembles vouloir, en tant que bon débutant qui souhaite absolument une solution sans même chercher à comprendre, pour venir ensuite venir pleurer sur les forums pour obtenir une autre solution toute faite et prête à copier-coller, sans jamais rien apprendre, en restant entièrement dépendant des autre, il faut absolument que tu saches de quel enregistrement tu veux les données. Sans ça, tu auras toujours ce warning. Si tu les veux tous, alors il va falloir ajouter une boucle pour itérer sur tous les éléments, explode()er tout ça et mettre le tout dans un tableau (voir l'excellent http://sylvie-vauthier.developpez.co...rand-debutant/).
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  20. #20
    Nouveau membre du Club
    Inscrit en
    Août 2002
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 94
    Points : 27
    Points
    27
    Par défaut Je suis vraiment désolé...
    En réalité je sais très facilement faire un explode avec php brute. Par contre je ne comprends pas bien symfony et les différents bundle et surtout doctrine que je n'utilise qu'avec la console. Jusqu'à présent je n'avait pas besoin d'aide mais pour ce problème particulier je ne trouve pas de solution ni dans la documentation de symfony 2 ni dans celle de Doctrine. Alors désolée d'avoir abusé de ton temps...

    PS la variable existe dans l'entité AdminVocabulaireBundle:voc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
        /**
         * @var integer $id
         *
         * @ORM\Column(name="id", type="integer")
         * @ORM\Id
         * @ORM\GeneratedValue(strategy="AUTO")
         */
        private $id;
    Mais mon bundle AdminPublicBundle ne la voit pas.. Comme j'ai dit dans un autre post si je fais
    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
     
    /**
         * @Route("/vocabulaire", name="devoirs_voc")
         * @Template()
         */
        public function vocabulaireAction()
     
     
        {
            $em = $this->getDoctrine()->getEntityManager();
     
            $entity = $em->getRepository('AdminVocabulaireBundle:Voc')->findall();
     
            return array('entities' => $entity);
     
        }
    aucun problème je vois les mots en ligne...
    Est-ce que le problème est facile à résoudre surement mais je ne vois pas pour l'instant...
    Alors je suis désolé encore une fois et merci à ceux qui voudront bien me répondre...

Discussions similaires

  1. [1.x] login dans symfony
    Par hatinfo dans le forum Symfony
    Réponses: 2
    Dernier message: 04/06/2009, 12h46
  2. [1.x] Je n'arrive pas à afficher mon nouveau module dans symfony
    Par kamdad dans le forum Symfony
    Réponses: 2
    Dernier message: 28/04/2009, 14h08
  3. [1.x] commande propel:insert-sql dans symfony
    Par kamdad dans le forum Symfony
    Réponses: 9
    Dernier message: 16/04/2009, 11h39
  4. [1.x] Variable globale dans Symfony
    Par SRTPC dans le forum Symfony
    Réponses: 3
    Dernier message: 02/06/2008, 19h51
  5. [1.x] A quoi sert phing dans symfony
    Par cornnery dans le forum Symfony
    Réponses: 1
    Dernier message: 10/03/2008, 16h56

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