Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [ZendFramework]Walidacja formularza - własne komunikaty
sweter
post
Post #1





Grupa: Zarejestrowani
Postów: 623
Pomógł: 11
Dołączył: 1.01.2009
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


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 (IMG:style_emoticons/default/smile.gif)
Pozdrawiam
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
mazy
post
Post #2





Grupa: Zarejestrowani
Postów: 69
Pomógł: 4
Dołączył: 12.03.2003
Skąd: Suwałki

Ostrzeżenie: (0%)
-----


możesz to zrobić używając zend translate
Go to the top of the page
+Quote Post
taro
post
Post #3





Grupa: Zarejestrowani
Postów: 58
Pomógł: 5
Dołączył: 12.12.2008

Ostrzeżenie: (0%)
-----


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. (IMG:style_emoticons/default/czarodziej.gif)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 5.10.2025 - 20:42