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 :

Traduction d'un code php en Twig-Symfony2 [2.x]


Sujet :

Symfony PHP

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Décembre 2012
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 30
    Points : 30
    Points
    30
    Par défaut Traduction d'un code php en Twig-Symfony2
    Bonjour!

    Je cherche à traduire ce code php en twig.

    Le problème se trouve au niveau de array_push.
    Soit un tableau $tab defini comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $tab= array( array('fruit'=>'avocat'),
                 array('fruit'=>'pomme')    
    );
    Code à traduire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $tabfruit= array();
     
    foreach ($tab as $t){           
       array_push($tabfruit, $t['fruit']);
    }
    Essaie de traduction en twig: $tab est envoyé à la vue avec la variable "tab"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    {% set tabfruit = [] %}
    {% for i in 0..(tab|length - 1) %}
        {% for t in tab %}
     
            {% set tabfruit = tabfruit|merge({ i : t}) %}
     
        {% endfor %}
    {% endfor %}
    En faisant un dump, il me retourne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    array (size=1)
      'i' => 
        array (size=1)
          'fruit' => string 'pomme' (length=5)
    Alors que j'espère:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    array (size=2)
      0 => string 'avocat' (length=6)
      1 => string 'pomme' (length=5)
    Merci d'avance !

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2012
    Messages : 44
    Points : 32
    Points
    32
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $tabfruit= array();
     
    foreach ($tab as $t){           
       array_push($tabfruit, $t['fruit']);
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    {% set tabfruit = [] %}
    {% for t in tab %}
        {{tabfruit.t = t['fruit']}}
    {% endfor %}

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Décembre 2012
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 30
    Points : 30
    Points
    30
    Par défaut
    Bonjour Mirfak!
    Voici ce que j'obtiens, en testant votre réponse:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Unexpected token "operator" of value "=" ("end of print statement" expected) in ... at line 3

  4. #4
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Septembre 2009
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2009
    Messages : 875
    Points : 1 313
    Points
    1 313
    Par défaut
    Bonjour,
    Cette opération devrait être fait coté contrôleur et envoyé dans la vue ensuite.

    pour l'erreur de mirfak c'est peut etre {{ set tabfruit.t = t['fruit'] }}. Je te recommande vraiment de ne pas faire de traitement dans la vue

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Décembre 2012
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 30
    Points : 30
    Points
    30
    Par défaut
    Voici ce que je voulais:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    {% set tabfruit = [] %}
    {% for t in tab %}
        {% set tabfruit = tabfruit|merge([t]) %}
    {% endfor %}
    Merci à vous tous!

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2012
    Messages : 44
    Points : 32
    Points
    32
    Par défaut
    arf oui, désolé, tu as bien vu mon erreur!

    sinon, je suis d'ac avec gototog, je privilégierais l'action dans le controller

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

Discussions similaires

  1. [2.x] Requête SQL et code php par symfony2
    Par ousyamani dans le forum Symfony
    Réponses: 5
    Dernier message: 20/01/2015, 18h22
  2. [COM] Traduction d'un code VB COM Excel vers PHP
    Par Copyright83 dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 14/10/2008, 10h32
  3. pb eval pour le code php dans une feuille xslt
    Par nipepsi dans le forum XSL/XSLT/XPATH
    Réponses: 8
    Dernier message: 10/09/2004, 11h23

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