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 :

[Twig] Boucle for et bdd [2.x]


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2011
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2011
    Messages : 146
    Par défaut [Twig] Boucle for et bdd
    Bonjour,

    J'ai un contrôleur qui effectue une requête pour aller chercher les informations d'un utilisateur. la requete retourne un résultat masi je n arrive pas a l afficher dans ma vue twig. Si la requete retourne plussieur résultat alors la tout s affiche bien.

    Exemple j'arrive a lister tous les utilisateurs de ma bdd mais je n arrive pas a lister les information d'un utilisateur choisie. Il me dit que j'ai aucun utilsateur alors que le print_r du tableau me retourne un enregistrement

    Controleur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     public function modifierUAction($id) {
            $userManager = $this->get('fos_user.user_manager');
            $users = $userManager->findUserBy(array('id' => $id)); // Pour récupérer la liste de tous les utilisateurs
            print_r($users);  / retourne bien mon tableau
            return $this->render('DemoAdminBundle::modifier_utilisateur.html.twig', array('users' => $users));
        }

    Ma vue

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    {% for utilisateurs in users %}
                        <tr>
                            <td>{{ utilisateurs.username }}</td>
                            <td>{{ utilisateurs.nom }}</td>
                            <td>{{ utilisateurs.prenom }}</td>
                            <td>{{ utilisateurs.email }}</td>
                            <td>{{ utilisateurs.enabled }}</td>
                        </tr>
                    {% else %}
                        <tr><td>Aucun utilsateurs n'a été trouvé.</td></tr>
                    {% endfor %}
    en revanche si je remplace
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     $users = $userManager->findUserBy(array('id' => $id));
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $users = $userManager->findUsers(); // Pour récupérer la liste de tous les utilisateurs
    Ca marche alors je me demande si ca ne viens pas de ma boucle for.

    Merci

  2. #2
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2011
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Juillet 2011
    Messages : 135
    Par défaut
    Est-ce que tu peux nous montrer la fonction FindUserBy... je pense plutot que quand il y a qu'un seul résultat (une ligne retourné) il te renvoie un objet et que quand ta plusieurs résultats il te renvoie un tableau. donc dans le second cas il rentre bien dans le for et l'autre non...

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2011
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2011
    Messages : 146
    Par défaut
    Merci de ta réponse. Il s'agit des fonctions de l'userManager de FOSUserbundle

    Cette fonction retourne les informations d'un seul utilisateurs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
      /**
         * {@inheritDoc}
         */
        public function findUserBy(array $criteria)
        {
            return $this->repository->findOneBy($criteria);
        }
    Cette fonction retourne tous les utilisateurs (Celle ci fonctionne bien)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
        /**
         * {@inheritDoc}
         */
        public function findUsers()
        {
            return $this->repository->findAll();
        }

  4. #4
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2011
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Juillet 2011
    Messages : 135
    Par défaut
    fais un var_dump du résultat. Tu verras s'il te renvoie un tableau d'objet ou un objet !!

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2011
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Juillet 2011
    Messages : 135
    Par défaut
    Je viens de regarder sur Internet et findOneBy retourne bien un tableau avec un seul élément... bizarre. Enfin, fais quand même le var_dump et affiche le nous pour être sûr.

  6. #6
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2011
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2011
    Messages : 146
    Par défaut
    Il me semble a 95% qu'il me retourne un array. Je vais vérifier ça ce soir.

    Si il 'agit bien d'un array tu ne vois pas de solution ?

    Si il s'agit d'un array quelle solution dois-je apporter ?

    Merci

    ps : ce n'est pas un interrogatoire c'est juste pour éviter de t'embêter ce soir

  7. #7
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    si c'est un array fait un for même si y'a qu'un seul élément

    et ton findUserBy, avec l'id en parametre corespond juste au find (qui lui renvoie bien qu'un element) ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $users = $userManager->find($id);
    c'est la base de Doctrine

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [2.x] Twig, boucle for imbriquées et accès aux variables et objets
    Par cid007300 dans le forum Symfony
    Réponses: 1
    Dernier message: 12/03/2014, 08h59
  2. [Twig] Concaténation boucle for
    Par waxx59 dans le forum Bibliothèques et frameworks
    Réponses: 0
    Dernier message: 19/12/2012, 10h26
  3. [2.x] Boucle for dans TWIG
    Par hx.jonathan dans le forum Symfony
    Réponses: 3
    Dernier message: 02/11/2011, 10h18
  4. [Swing][boucles] for, do, if .....comment faire simple?
    Par chastel dans le forum AWT/Swing
    Réponses: 7
    Dernier message: 02/05/2004, 22h49
  5. [langage] boucle "for" modification du pas
    Par K-ZimiR dans le forum Langage
    Réponses: 4
    Dernier message: 29/04/2004, 11h54

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