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 :

[Symfony2-Twig] Parcourir un tableau avec twig


Sujet :

Symfony PHP

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2013
    Messages : 12
    Points : 11
    Points
    11
    Par défaut [Symfony2-Twig] Parcourir un tableau avec twig
    Bonjour à tous,

    J'ai un leger problème lors de l'affichage d'un tableau, je m'explique.

    J'ai un tableau de commande (commandeparbudget) formé comme ceci : (var_dump de mon tableau avec les 2 premières valeurs) :

    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
    array(5) {
      [1]=>
          array(159) {
          [0]=>
                array(11) {
                [0]=>
                object(Cco\GestionCommandeBundle\Entity\CommandeHasArticle)#1788 (5) {
                ["id":"Cco\GestionCommandeBundle\Entity\CommandeHasArticle":private]=>
                int(17388)
                ["quantite":"Cco\GestionCommandeBundle\Entity\CommandeHasArticle":private]=>
                int(1)
           }
          ["designation"]=>
          string(12) "Agrafes 26/6"
          ["prixunitaire"]=>
          float(0.167)
          ["numordre"]=>
          int(1)
        }
    
        [1]=>
        array(11) {
          [0]=>
          object(Cco\GestionCommandeBundle\Entity\CommandeHasArticle)#1786 (5) {
            ["id":"Cco\GestionCommandeBundle\Entity\CommandeHasArticle":private]=>
            int(17185)
            ["quantite":"Cco\GestionCommandeBundle\Entity\CommandeHasArticle":private]=>
            int(5)
          }
          ["designation"]=>
          string(13) "Agrafes 8/4  "
          ["prixunitaire"]=>
          float(0.104)
          ["numordre"]=>
          int(3)
        }
    (!) La clé de ma première case du tableau correspond à un id de budget (!)
    Lorsque je souhaite parcourir celui-ci dans ma vue (stats.html.twig), je fais cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    {% for budget in lesbudgets %}
    <tr>
    	<th>N° ordre</th>
    </tr>
    {% set long = commandeparbudget[budget.idbudget]|length %}
    	{% for j in range(0, long) %}
    		<tr>
    			<td>{{ commandeparbudget[budget.idbudget]~'.'~j~'.numordre'}} </td>
    		</tr>
    	{% endfor %}
    {% endfor %}
    Je souhaite donc boucler sur 'j' pour parcourir toutes les cases de mon tableau mais le résultat de ceci est ... une page toute blanche ! J'ai donc consulté les log et cette erreur s'affiche :
    PHP Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 64 bytes) in /var/www/Symfony/vendor/symfony/symfony/src/Symfony/Component/Debug/Exception/FlattenException.php on line 264, referer: http://10.224.1.22/Symfony/web/app_dev.php/stats
    Le plus étrange, c'est que lorsque je remplace {{ commandeparbudget[budget.idbudget]~'.'~j~'.numordre'}} par {{ commandeparbudget[budget.idbudget].0.numordre'}} , il m'affiche bien la bonne valeur (à savoir 1 (en gras dans le var_dump)).

    Je ne comprends pas ce qu'il se passe, donc si quelqu'un pouvait m'éclairer, ce serait avec grand plaisir.

    J'espere avoir été clair et reste à votre disposition pour toutes questions éventuelles.

    Merci d'avance

  2. #2
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2007
    Messages
    643
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2007
    Messages : 643
    Points : 305
    Points
    305
    Par défaut
    tu passes par des extensions twig ?
    avec quoi produit tu ton tableau commandeparbudget?

    je ne comprends pas bien cet approche dans l'ecriture du twig
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {{ commandeparbudget[budget.idbudget]~'.'~j~'.numordre'}}
    Tous cela pour acceder a quel données ?
    J'ai l'impression que tu te complique la vie.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2013
    Messages : 12
    Points : 11
    Points
    11
    Par défaut
    Bonjour Miltone,

    Désolé pour le temps de réponse, je n'étais pas derrière mon PC ces derniers jours...et merci pour ta réponse .

    Alors, mon tableau commandeparbudget est créé de cette façon dans mon Controller :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $commandeparbudget[$unbudget->getIdbudget()] = $repository3->findArticleByIdcommande($lesidcommandesparbudget);
    Je boucle sur les budgets (d'où le $undbuget->getIdbudget()) et j'utilise ma méthode findArticleByIdcommande de mon repository de Commande pour récuperer toutes les informations dont j'ai besoin (quantité, id du produit, etc...). Les clé de mon tableau commandeparbudget sont donc des Id de budget.

    Une "case" de mon tableau correspond donc bien à cela (Un seul objet affiché sur 5 pour simplifier la compréhension):

    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
    array(5) {
      [1]=>
          array(159) {
          [0]=>
                array(11) {
                [0]=>
                object(Cco\GestionCommandeBundle\Entity\CommandeHasArticle)#1788 (5) {
                ["id":"Cco\GestionCommandeBundle\Entity\CommandeHasArticle":private]=>
                int(17388)
                ["quantite":"Cco\GestionCommandeBundle\Entity\CommandeHasArticle":private]=>
                int(1)
           }
          ["designation"]=>
          string(12) "Agrafes 26/6"
          ["prixunitaire"]=>
          float(0.167)
          ["numordre"]=>
          int(1)
        }
    Ensuite, concernant l'affichage en twig :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {{ commandeparbudget[budget.idbudget]~'.'~j~'.numordre'}}
    Je voudrais parcourir ce tableau pour afficher, dans un tableau que je crééer à l'affichage, les informations nécéssaires (à savoir le numordre ici , en gras dans le var_dump) , il y aurait donc sur les ligne suivante les memes lignes concernant la désignation du produit , etc...

    Comme dit dans mon premier post, lorsque j'écris
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {{ commandeparbudget[budget.idbudget].0.numordre'}}
    cela m'affiche bien la valeur recherchée, à savoir 1. J'esseye donc de concatener ma variable j, qui me sert d'index, avec les variable commandeparbudget et budget.idbudget mais cela ne fonctionne pas. J'ai l'impression que Twig n'arrive pas a comprendre que le resultat final est UNE seule variable (commandeparbudget[budget.idbudget].0.numordre) .

    J'espere avoir été clair,

    Merci de ton aide.

Discussions similaires

  1. [WD-2010] Parcourir un tableau avec des cellules fusionnées
    Par Tanoffy dans le forum VBA Word
    Réponses: 0
    Dernier message: 09/12/2014, 14h05
  2. [2.x] image gif avec twig Symfony2.1
    Par encours dans le forum Symfony
    Réponses: 2
    Dernier message: 01/12/2012, 23h03
  3. parcourir un tableau croisé excel avec php
    Par ballantine's dans le forum Langage
    Réponses: 2
    Dernier message: 24/03/2010, 13h32
  4. Réponses: 4
    Dernier message: 18/09/2008, 20h44
  5. Parcourir un tableau de String avec logic:iterate
    Par casawi dans le forum Struts 1
    Réponses: 7
    Dernier message: 07/02/2008, 14h40

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