J'utilise Zend Framework 1.62 (car nous déployons le produit fini dans une instance de Red Hat, qui n'a pas assez de hgih pour supporter la version de PHP> ZF1.62).Accès aux messages d'erreur personnalisés pour le validateur InArray lors de l'utilisation de Zend_Form_Element_Select
Lors de la création d'un formulaire à l'aide du formulaire Zend, j'ajoute un élément de sélection, j'ajoute quelques options multiples. J'utilise le formulaire Zend comme couche de validation dans l'objet, en lui passant des valeurs d'objets et en utilisant la méthode isValid pour déterminer si toutes les valeurs tombent dans les paramètres normaux.
Zend_Form_Element_Select fonctionne exactement comme prévu, ne pouvant pas être validé si une autre valeur est entrée autre que l'une des options de sélection multiple que j'ai ajoutées.
Le problème vient lorsque je veux afficher le formulaire à un moment donné, je ne peux pas éditer le message d'erreur créé par le validateur pré-enregistré 'InArray' ajouté automatiquement par ZF. Je sais que je peux désactiver ce comportement, mais il fonctionne très bien en dehors des messages d'erreur. J'ai tryed les éléments suivants:
$this->getElement('country')->getValidator('InArray')->setMessage('The country is not in the approved lists of countries');
// Doesn't work at all.
$this->getElement('country')->setErrorMessage('The country is not in the approved lists of countries');
// provoque un conflit elswhere dans l'application et doesnt permettent un contrôle granulaire des messages d'erreur.
Vous avez des idées?
Ben
Oui en effet .... Cependant, dans ce cas, le validateur est configuré en arrière-plan. À partir du manuel: Par défaut, cet élément enregistre un validateur InArray qui valide par rapport aux clés de tableau des options enregistrées. Vous pouvez désactiver ce comportement en appelant setRegisterInArrayValidator (false) ou en transmettant une valeur false à la clé de configuration registerInArrayValidator. Ma question concerne l'accès à ce message d'erreur particulier des validateurs. Merci pour votre réponse, un autre aperçu? Ben –