Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [ZendFramework] Porównywanie zawartości dwóch pól formularza
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ę napisać własny walidator, który sprawdzałby czy w dwóch polach formularza podano dwie takie same wartości. Chcę to zastosować oczywiście przy rejestracji, kiedy user będzie ustawiał swoje hasło do systemu.

Tak więc utworzyłem własny walidator o nazwie TheSameValue. Przykładowy formularz wykorzystujący ten walidator wygląda tak (pokazuje tylko najistotniejszy fragment):
  1. $password_repeat = new Zend_Form_Element_Password('password_repeat');
  2. $password_repeat->setLabel('Powtórz hasło:')
  3. ->setRequired(true)
  4. ->addValidator(new Zend_Validate_StringLength(array('min' => 6, 'max' => 255)));
  5.  
  6. $password = new Zend_Form_Element_Password('password');
  7. $password->setLabel('Hasło:')
  8. ->setRequired(true)
  9. ->addValidator(new Zend_Validate_StringLength(array('min' => 6, 'max' => 255)))
  10. ->addValidator(new Zend_Validate_TheSameValue($password_repeat));


Jak widać, w ostatniej linijce przekazuje mój walidator. Do konstruktora podałem drugie pole na hasło.

Na razie w walidatorze zająłem się wyświetlaniem danych. Jednak to mam problem.
  1. public function __construct($value_repeat_ob) {
  2. $this->value_repeat_ob = $value_repeat_ob;
  3. }
  4.  
  5. public function isValid($value) {
  6. var_dump ($this->value_repeat_ob->getValue());
  7. }


Problem pojawia się w metodzie isValid(): kiedy przysyłam w formularzu jakieś wartości to
  1. var_dump ($this->value_repeat_ob->getValue());

zwraca mi NULL'a.
Dlaczego tak się dzieje? W jaki sposób mogę dobrać się do wartości drugiego pola?
Pozdrawiam
Go to the top of the page
+Quote Post

Posty w temacie


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: 19.09.2025 - 04:37