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

Autres composants PHP Discussion :

Utilisation de Zend_Validate


Sujet :

Autres composants PHP

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 77
    Par défaut Utilisation de Zend_Validate
    Salut à tous,
    voila j'ai voulu créer un "validator" pour mon application mais je suis confronté à une erreur !!!
    Fatal error: Declaration of Zend_Validate_Dateconge::isValid() must be compatible with that of Zend_Validate_Interface::isValid() in C:\wamp\www\WebApp\library\Zend\Validate\Dateconge.php on line 54
    Quelqu'un pourrait m'aider ?

    Voici le code de mon validator (le but étant de comparer la date de fin avec la date de début pour savoir si l'utilisateur n'a pas entré une date inférieur) :

    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
     
    require_once 'Zend/Validate/Abstract.php';
     
    class Zend_Validate_Dateconge extends Zend_Validate_Abstract
    {
     
        const INVALID = 'dateInvalid';
     
        protected $_messageTemplates = array (self::INVALID=> "'%value%' does not appear to be a valid date" );
     
     
        public function isValid($value,$allvalues)
        {
    		Zend_Debug::dump($allvalues);
     
    		$valuestring = (string)$value;
     
    		$this->_setvalue($valuestring);
     
    		if($date->compare(Zend_Date::isdate($value),Zend_Date::isdate($allvalues['datedebut'])) == -1) 
    		{
            	$this->_error (self::INVALID);
            	return false;
        	}
     
    		return true;
        }
     
    }

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 77
    Par défaut
    J'ai pu comprendre mon erreur !!!
    dans interface.php de Zend isValid ne prend qu'un paramètre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    interface Zend_Validate_Interface
    {
     
        public function isValid($value);
     
     
        public function getMessages();
     
     
        public function getErrors();
     
    }
    du coup comment puis-je intégrer mon validator dans mon dojo form ?
    quelqu'un aurait une idée ??

    voici mon form :

    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
    39
    40
     
    	$form2 = new Zend_Dojo_Form();
        	$form2->setMethod('POST')->setAction("demande");	
     
       	$form2->addElement('FilteringSelect', 'typecongeid', array(
    						   'label' => 'Conge :',
    						   'autocomplete' => true,
    						   'storeId' => 'congeStore',
    						   'storeType' => 'dojo.data.ItemFileReadStore',
    						   'storeParams' => array('url' => 'congelist'),
    						   'dijitParams' => array('searchAttr' => 'libelle_type_conge'),
            				   'required' => true))
     
    			  ->addElement('NumberSpinner', 'annee', array(
    			  			   'label' => 'Annee :',
    						   'value' => ''.date('Y').'',
    						   'smallDelta' => '1',
    						   'min' => 2005,
    						   'max' => 2050,
    						   'defaultTimeout' => 100,
    						   'timeoutChangeRate' => 100,
    						   'required' => true))
     
    			  ->addElement('DateTextBox', 'datedebut', array(
              				   'label' => 'Date Debut :',
            				   'validators' => array('Date'),
            				   'required' => true))
     
    			  ->addElement('DateTextBox', 'datefin', array(
              				   'label' => 'Date Fin :',
            				   'validators' => array('Date','Dateconge'),
            				   'required' => true))			
     
        			->addElement('SubmitButton', 'submit', array(
            				     'label' => 'Valider'));
     
        	$this->view->form2 = $form2;
     
    		return $form2;
    	}

  3. #3
    Membre Expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Par défaut
    Bonjour,

    en fait un élément de formulaire passe à ses validateurs deux options : sa valeur et le contexte (= les données du formulaire).

    Donc le prototype de ta méthode isValid peut ressembler à ça (le deuxième paramètre doit être optionnel) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public function isValid($value, $context = null)

Discussions similaires

  1. utiliser les tag [MFC] [Win32] [.NET] [C++/CLI]
    Par hiko-seijuro dans le forum Visual C++
    Réponses: 8
    Dernier message: 08/06/2005, 15h57
  2. Réponses: 4
    Dernier message: 05/06/2002, 14h35
  3. utilisation du meta type ANY
    Par Anonymous dans le forum CORBA
    Réponses: 1
    Dernier message: 15/04/2002, 12h36
  4. [BCB5] Utilisation des Ressources (.res)
    Par Vince78 dans le forum C++Builder
    Réponses: 2
    Dernier message: 04/04/2002, 16h01
  5. Réponses: 2
    Dernier message: 20/03/2002, 23h01

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