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 :

sfForm parcourir les sfFormField sans foreach


Sujet :

Symfony PHP

  1. #1
    Membre habitué
    Inscrit en
    Avril 2003
    Messages
    397
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 397
    Points : 133
    Points
    133
    Par défaut sfForm parcourir les sfFormField sans foreach
    Bonjour,

    Comment boucler sur les sfFormField dans sfForm sans foreach ?

    Lorsque je suis dans la class sfForm j'arrive très bien à récupérer tous mes éléments de la sorte

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    foreach ($this as $oWidget) {
    ....
    $oWidget->render()...
    }
    En revanche, impossible d'obtenir le même résultat avec un simple each ou même while (list(, $oWidget) = each($this)).

    J'ai souvent besoin de sortir du foreach pour commencer une nouvelle mise en form d'élément et boucler sur le reste sans nom ni index.

    Merci

  2. #2
    Expert éminent
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Points : 8 486
    Points
    8 486
    Par défaut
    Je ne suis pas sur de comprendre la notion de boucle hors d'un foreach pour ce type d'informations.

    Par contre, tu peux rendre un champ simplement dans le contrôleur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $this->form = new MyForm;
    dans le template pour rendre l'objet field
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php echo $form['field']->renderRow() ?>
    qui affiche une ligne de tableau

    ou encore pour plus de granularité
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <?php echo $form('field']->renderLabel() //pour le label ?>
    <?php echo $form['field'] // pour le imput ?> 
    <?php echo $form['field']->renderHelp() //pour l'aide ?>
    Est-ce ta solution ?
    Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).

    • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
    • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
    • Une discussion est terminée ? Alors le bouton est votre ami !

  3. #3
    Membre habitué
    Inscrit en
    Avril 2003
    Messages
    397
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 397
    Points : 133
    Points
    133
    Par défaut
    Tout ça, je sais déjà le mettre en oeuvre.

    Mon problème concerne précisément le fait de sortir d'un foreach pour commencer une nouvelle mise en forme d'éléments.

    Je veux pouvoir boucler sur les éléments restants sans nom ni index.

  4. #4
    Expert éminent
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Points : 8 486
    Points
    8 486
    Par défaut
    Hors symfony ou en pseudo code tu ferais comment ?

    J'ai du mal a comprendre la notion de "boucler sur les éléments restants sans nom ni index"
    Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).

    • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
    • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
    • Une discussion est terminée ? Alors le bouton est votre ami !

  5. #5
    Membre habitué
    Inscrit en
    Avril 2003
    Messages
    397
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 397
    Points : 133
    Points
    133
    Par défaut
    La logique voudrait qu'un simple each ou même while (list(, $oWidget) = each($this)) fonctionne mais pas là.

  6. #6
    Expert éminent
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Points : 8 486
    Points
    8 486
    Par défaut
    L'objet sfForm n'est qu'un objet ...

    L'objet sfForm implantes : ArrayAccess, Iterator, Countable.

    Hors Iterator ne fonctionne qu'avec forEach...

    CQFD ?
    Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).

    • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
    • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
    • Une discussion est terminée ? Alors le bouton est votre ami !

  7. #7
    Membre habitué
    Inscrit en
    Avril 2003
    Messages
    397
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 397
    Points : 133
    Points
    133
    Par défaut
    Oui c'est certainement une bonne piste.

    Il faut que j'analyse le comportement de l'Iterator.

    Pourquoi fonctionnerait-il uniquement sur le foreach et non le each ?

    Merci

  8. #8
    Expert éminent
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Points : 8 486
    Points
    8 486
    Par défaut
    On sort du cadre de symfony là et je vais avancer sur un sol glissant pour moi. Si un meilleur en php peut intervenir, je prends.

    Les objets symfony peuvent implémenter des comportement pour réagir à certaines fonctions du langage. Hors itérator est prévu pour fonctionner avec foreach ce qui explique sans doutes que cela ne marche pas avec les autres ittérator... Il doit exister des possibilités d'implémentation, mais elle ne sont pas en oeuvre dans sfForm...
    Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).

    • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
    • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
    • Une discussion est terminée ? Alors le bouton est votre ami !

Discussions similaires

  1. Réponses: 9
    Dernier message: 08/06/2010, 01h09
  2. Comment consulter les valeurs d'un tableau sans foreach
    Par pierrot10 dans le forum Langage
    Réponses: 1
    Dernier message: 01/05/2010, 23h14
  3. Parcourir un formulaire sans les recordsets
    Par imsse dans le forum VBA Access
    Réponses: 1
    Dernier message: 28/11/2007, 15h12
  4. [langage] Trouver les fichiers sans la case
    Par nledez dans le forum Langage
    Réponses: 2
    Dernier message: 22/12/2004, 12h07
  5. Réponses: 4
    Dernier message: 11/09/2004, 16h38

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