Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ZendFramework]Walidacja formularza - własne komunikaty
Forum PHP.pl > Forum > PHP > Frameworki
sweter
Witam,
chcąc utworzyć własny komunikat błędu zawsze robiłem tak (to wszystko w klasie Application_From_(...)):
  1. $login = new Zend_Form_Element_Text('login');
  2. $this->addElement($login);
  3. $login ->setLabel('Login:') // etykieta
  4. ->setdescription('') // podpowiedz
  5. ->setRequired(true) // pole jest wymagane
  6. ->addValidator(new Zend_Validate_NotEmpty(), true)
  7. ->addValidator(new Zend_Validate_StringLength(6,50), true);
  8. $login->getValidator('NotEmpty')->setMessages(array(
  9. Zend_Validate_NotEmpty::IS_EMPTY => 'Proszę podać login'
  10. ));
  11. $login->getValidator('StringLength')->setMessages(array(
  12. Zend_Validate_StringLength::TOO_LONG => 'Login nie może zawierać więcej niż 50 znaków'
  13. ));

Ostatnio zmieniłem styl pisania formularzy na krótszy i bardziej zwięzły:
  1. $this->addElement('text','login',array(
  2. 'label'=>'Login:',
  3. 'required'=>true,
  4. 'vaidators'=>array(
  5. 'NotEmpty'
  6. )
  7. ));

Tylko w jaki sposób teraz mam ustawić własne komunikaty błędów?
Proszę tylko o łopatologiczne wyjaśnienia - jestem laikiem smile.gif
Pozdrawiam
mazy
możesz to zrobić używając zend translate
taro
Na przykład:

  1. $validate_dlugosc = new Zend_Validate_StringLength(0, 60);
  2. $validate_dlugosc->setMessage('Dopuszczalna długość to 60 znaków.', 'stringLengthTooLong');
  3. $validate_dlugosc->setMessage('Wprowadź przynajmniej 0 znaki', 'stringLengthTooShort');
  4. $validate_dlugosc->setMessage('Wprowadź od 0 do 60 znaków.', 'stringLengthInvalid');


A później przy danym elemencie w formularzu:
  1. ->addValidator($validate_dlugosc);



lub jeszcze
  1. ->addValidator('NotEmpty', true, array('messages' => array('isEmpty' => 'Wybierz cośtam.')));



W taki sam sposób można tworzyć inne własne komunikaty błędów.
Mam nadzieję, że pomogłem. czarodziej.gif
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.