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 :

Création d'un validateur


Sujet :

Zend_Form PHP

  1. #1
    Futur Membre du Club
    Inscrit en
    Décembre 2010
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 6
    Points : 6
    Points
    6
    Par défaut Création d'un validateur
    Bonjour à vous
    Je test une classe de "validation de saisie" perso et j'ai un petit souci.
    Le contrôle du titre du disque (Il doit etre = 'TOTO') marche mais
    en cas d'echec aucun message apparait dans le formulaire .... Il y a juste un POINT
    Est ce que ce n'est pas un conflit avec addValidator (..qui eux marchent correctement) ?
    Merci encore pour votre aide

    mes classes :

    classe validate perso:
    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
    <?php
    require_once 'Zend/Validate/Abstract.php';
     
    class Validate_NameMatch extends Zend_Validate_Abstract
    {
        const NAME_MISMATCH = 'nom titre accepté';
     
         protected $_compare;
     
        public function __construct($compare)
        {
            $this->_compare = $compare;
        }
     
        protected $_messageTemplates = array(
            self::NAME_MISMATCH => 'Le nom du disque n est pas accepté'
        );
     
        public function isValid($value)
        {
            $this->_setValue((string) $value);
            if ($value !== $this->_compare)  {
               $this->_error(self::NAME_MISMATCH);
              return false;
           }
            return true;
        }
     
    }
    ?>
    classe formulaire :
    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
    38
    <?PHP
    class Application_Form_Album extends Zend_Form
    {
        public function init()
        {
            $this->setName('album');
     
            $id = new Zend_Form_Element_Hidden('id');
            $id->addFilter('Int');
     
            $artiste = new Zend_Form_Element_Text("artiste", array('size' => 25));
            $artiste->setLabel('Artiste')
                    ->setRequired(true)
                    ->addFilter('StripTags')
                    ->addFilter('StringTrim')
                    ->addValidator('NotEmpty');
     
            $titre = new Zend_Form_Element_Text("titre", array('size' => 25));
            $titre->setLabel('Titre')
                  ->setRequired(true)
                  ->addFilter('StripTags')
                  ->addFilter('StringTrim')
                  ->addValidator('NotEmpty');
     
            $envoyer = new Zend_Form_Element_Submit('envoyer');
            $envoyer->setAttrib('id', 'boutonenvoyer');
     
            $this->addElements(array($id, $artiste, $titre, $envoyer));
        }
    // Redefinition de la methode
       public function isValid($data)
       {
             $titre = $this->getElement('titre');
             $titre->addValidator(new Validate_NameMatch('TOTO'));
          return parent::isValid($data);
      }
    }
    ?>

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Où se trouve ta classe ? Chez moi, ce genre de classes est dans un répertoire MyZend, répérée par le namespace MyZend_...
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  3. #3
    Futur Membre du Club
    Inscrit en
    Décembre 2010
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 6
    Points : 6
    Points
    6
    Par défaut
    mon fichier contenant la classe de validation perso. se
    trouve dans le répertoire Library\Validate\NameMatch.php

    Voici aussi le fichier application.ini

    Code x : 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
    phpSettings.date.timezone = "Europe/Paris"
    [production]
    phpSettings.display_startup_errors = 0
    phpSettings.display_errors = 0
    autoloadernamespaces[] = "Validate_"
    includePaths.library = APPLICATION_PATH "/../library"
    bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
    bootstrap.class = "Bootstrap"
    appnamespace = "Application"
    resources.frontController.params.displayExceptions = 1
    resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
    resources.frontController.params.displayExceptions = 1
    resources.db.adapter = "pdo_mysql"
    resources.db.params.host = "127.0.0.1"
    resources.db.params.username = "root"
    resources.db.params.password = "xxxxxxxx:ccool::ccool::ccool::merci::merci::ccool::ccool:t"
    resources.db.params.dbname = "xxxxxxxx"
    resources.db.isDefaultTableAdapter = true
    resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts/"
    resources.view.doctype = "XHTML1_STRICT"
    
    [staging : production]
    
    [testing : production]
    phpSettings.display_startup_errors = 1
    phpSettings.display_errors = 1
    
    [development : production]
    phpSettings.display_startup_errors = 1
    phpSettings.display_errors = 1

    Je vous remercie pour votre aide

Discussions similaires

  1. Réponses: 1
    Dernier message: 14/03/2008, 09h09
  2. [JSF] Création de validateurs custom
    Par mymyma dans le forum JSF
    Réponses: 3
    Dernier message: 28/06/2006, 15h32
  3. [Kylix] Création d'un fichier lien
    Par DrQ dans le forum EDI
    Réponses: 2
    Dernier message: 14/05/2002, 21h30
  4. Création image BMP
    Par Anonymous dans le forum C
    Réponses: 2
    Dernier message: 25/04/2002, 16h04

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