Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ZendFramework]Formularz rejestracyjny
Forum PHP.pl > Forum > PHP > Frameworki
sweter
Witam,
chciałbym wiedzieć jak "kazać" formularzowi sprawdzić, czy dwa pola mają taką samą zawartość (np. pola "Hasło" i "Powtórz hasło").
Kod odpowiedzialny za walidiację zawsze mam na końcu pliku z formularzem, np.:
  1.  
  2. $haslo->getValidator('StringLength')->setMessages(array(
  3. Zend_Validate_StringLength::TOO_SHORT => 'Hasło musi być dłuższe niż 6 znaków.'
  4. ));

Tak więc można to zrobić za pomocą jakichś metod Zend'a, czy trzeba kombinować?
Z góry dziękuję za odpowiedź smile.gif
legorek
Zend_Validate_Identical smile.gif
batman
Cytat(legorek @ 3.08.2010, 14:56:36 ) *
Zend_Validate_Identical smile.gif

Tym walidatorem nie sprawdzisz, czy podane hasła są identyczne. Musisz napisać własny walidator. Przykład i gotowy kod znajdziesz tutaj - http://framework.zend.com/manual/en/zend.f...ents.validators.
legorek
@Batman, oczywiście można mało tego jest co najmniej 3 sposoby żeby to zrobić: można pisać własny validator, można nadpisać metodę isValid formularza lub tak jak poniżej (18 linijka):

  1. class Application_Form_Password extends Zend_Form
  2. {
  3.  
  4. public function init()
  5. {
  6. $this->addElement('password', 'password', array(
  7. 'label' => 'password',
  8. 'required' => true,
  9. 'filters' => array('StringTrim'),
  10. 'validators' => array(array('StringLength', false, array(8, 255)))
  11. ));
  12. $this->addElement('password', 'password_repeat', array(
  13. 'label' => 'password_repeat',
  14. 'required' => true,
  15. 'filters' => array('StringTrim'),
  16. 'validators' => array(
  17. array('StringLength', false, array(8, 255)),
  18. array('Identical', false, Zend_Controller_Front::getInstance()->getRequest()->getParam('password')),
  19. )
  20. ));
  21. $this->addElement('submit', 'submit', array(
  22. 'ignore' => true,
  23. 'label' => 'ustaw_haslo',
  24. ));
  25. }
  26. }
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.