Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ZendFramework] sprawdzenie pola
Forum PHP.pl > Forum > PHP > Frameworki
kociupk
mam problem ze sprawdzeniem danych w bazie danych dokladnie chce sprawdzic czy dany login juz istnieje w bazie danych i mi to nie wychodzi
controller
  1. public function registryAction()
  2. {
  3. $form = new App_Form_Registry();
  4. $formData = array();
  5.  
  6. if($this->getRequest()->isPost())
  7. {
  8. $formData = $this->getRequest()->getPost();
  9. if($form->isValid($formData))
  10. {
  11. echo '0';
  12.  
  13.  
  14. } else {
  15. $form->populate($formData);
  16. }
  17. } else {
  18. $this->view->form = $form;
  19. }
  20. }

forms
  1. $userName = new Zend_Form_Element_Text('user_name');
  2. $userName->setLabel('Nazwa uzytkownika')
  3. ->setRequired(true)
  4. ->addValidator( new Zend_Validate_Db_NoRecordExists('portal_user', 'user_name'));

Daimos
  1. \
  2. $userName = new Zend_Form_Element_Text('user_name');
  3. $userName->setLabel('Nazwa uzytkownika')
  4. ->setRequired(true)
  5. ->addValidator('Db_RecordExists', array('portal_user', 'user_name'), true);
tak działa?

a poza tym:
  1. else {
  2. $form->populate($formData);
  3. }
nie musisz tego pisać, zend_form sam populuje formularz
Master Pain
my salsa, Db_NoRecordExists
  1. $istnieje = new Zend_Validate_Db_NoRecordExists(array('table' => 'portal_user', 'field' => 'user_name'));
  2. $istnieje->setMessages(array('recordFound' => 'Istnieje już osoba o podanej nazwie.'));
kociupk
my salsa jak dodaje twoje rozwiazanie to wyskakuje blad

Fatal error: Uncaught exception 'Zend_Validate_Exception' with message 'Table or Schema option missing!' in /home/cat/domains/xxx/public_html/mm/library/Zend/Validate/Db/Abstract.php:116 Stack trace: #0 [internal function]: Zend_Validate_Db_Abstract->__construct(true) #1 /home/cat/domains/xxx/public_html/mm/library/Zend/Form/Element.php(2095): ReflectionClass->newInstance(true) #2 /home/cat/domains/xxx/public_html/mm/library/Zend/Form/Element.php(1247): Zend_Form_Element->_loadValidator(Array) #3 /home/cat/domains/xxx/public_html/mm/library/Zend/Form/Element.php(1320): Zend_Form_Element->getValidators() #4 /home/cat/domains/xxx/public_html/mm/library/Zend/Form.php(2038): Zend_Form_Element->isValid('', Array) #5 /home/cat/domains/xxx/public_html/mm/application/modules/default/controllers/IndexController.php(24): Zend_Form->isValid(Array) #6 /home/cat/domains/xxx/public_html/mm/library/Zend/Controller/Action.php(513): IndexController->registryAction() #7 /home/c in /home/cat/domains/xxx/public_html/mm/library/Zend/Validate/Db/Abstract.php on line 116

a jak dodaje zozwiazanie Master Pain to wyswietla blad
Fatal error: Call to a member function getOrder() on a non-object in /home/cat/domains/xxx/public_html/mm/library/Zend/Form.php on line 1025

moj kod byl poprawny wszystko juz dziala problem byl w pliku indexController smile.gif
Pozdrawiam
fander
Witam

Napisz własny walidator dla tego pola na oko to będzie z 30 linii kodu
melkorm
Cytat
nie musisz tego pisać, zend_form sam populuje formularz


Oczywiście gdy użyjesz validate na formularzu smile.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.