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

Zend_Form PHP Discussion :

Validators multiples via array [ZF 1.10]


Sujet :

Zend_Form PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2010
    Messages : 4
    Par défaut Validators multiples via array
    Bonjour,

    J'ai un petit problème pour passer les validateurs à mon champ de formulaire.

    ayant un très grand nombre de champs à afficher dans le formulaire, j'ai structuré les informations via un array qui passe les données à un "Form Helper" que j,ai construit. Les données de chacun des champs sont formattées de cette façon :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    array('type'     => 'text',
          'name'     => 'annee',
          'id'       => 'annee',
          'description' => 'Année',
          'required' => true,
          'validator' => array(array('Digits'), 
                         array('LessThan', false, array(2010))),
          'class'    => 'small')
    Le problème vient du format de réception lorsque j'arrive dans ma classe servant a générer le champ de formulaire et que j'utilise la commande

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $$champ['name']     ->addValidator($validator);
    J'ai fait le test de passer les validateurs morceau par morceau via un foreach et j'ai également essayé de passer chaque validateur en morceau via un foreach imbriqué dans le premier foreach.

    Le message d'erreur que Zend me retourne est

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Invalid validator provided to addValidator; must be string or Zend_Validate_Interface
    merci

  2. #2
    Membre Expert Avatar de nosferapti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 157
    Par défaut
    d'après le message d'erreur, c'est la variable $validator qui ne contient pas ce qu'il faut
    affiche le contenu de cette variable à chaque passage dans la boucle pour vérifier qu'elle contient bien ce que tu attendais

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2010
    Messages : 4
    Par défaut
    Merci pour la réponse rapide, c'a m'a permis d'aiguiller mes recherche sur un truc auquel je n'avais pas pensé. Voici ma solution, si jamais ça peut aider quelqu'un

    Voici la nouvelle version du array qui passe les informations vers mon "Form Helper'

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    array('type'     => 'text',
                        'name'     => 'annee',
                        'id'       => 'annee',
                        'description' => 'Année',
                        'required' => true,
                        'validator' => array(array('validator'=>'Digits'),
                                             array('validator'=>'LessThan',
                                                   'options'=> array(false, array(2010)))),
                          'class'    => 'small')
    et voici la loop qui permet d'ajouter autant de validateurs que désiré à un formulaire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    foreach($champ['validator'] as $validator){
        if(isset($validator['options'])){
            $$champ['name']     ->addValidator($validator['validator'], 
                                               $validator['options'][0],
                                               $validator['options'][1]);
        }else{
            $$champ['name']     ->addValidator($validator['validator']);
        }
    }

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 132
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 132
    Par défaut
    Bonjour,

    En fait tu dois pouvoir créer directement ton élément de formulaire à partir de ta structure tableau si le format de description est correct...

    Citation Envoyé par jfdio Voir le message
    ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    array('type'     => 'text',
          'name'     => 'annee',
          'id'       => 'annee',
          'description' => 'Année',
          'required' => true,
          'validators' => array(array('Digits'), 
                         array('LessThan', false, array(2010))),
          'class'    => 'small')
    ...
    En ajoutant le 'S' à validators il ne reste plus qu'a appeler :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $monForm->addElement($jfdioArray);

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

Discussions similaires

  1. Multiplicity et Array
    Par youkoun dans le forum BOUML
    Réponses: 7
    Dernier message: 07/05/2008, 14h52
  2. Réponses: 5
    Dernier message: 25/07/2007, 16h19
  3. [MySQL] Envoi multiple via html/php
    Par jim1 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 10/05/2007, 08h43
  4. Insertion multiples via script php
    Par furtif1 dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 09/04/2007, 17h03
  5. [XSD] validation xml via xsd
    Par florentB dans le forum Format d'échange (XML, JSON...)
    Réponses: 8
    Dernier message: 18/01/2007, 15h19

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