Cita:
Iniciado por Ferdinandum Oki, se puede crear como validador? o me creo una funcion.
Código PHP:
public function registrarseAction(){
$form = new Forms_reguserForm();
$form->setMethod('post')
->setAction($this->getRequest()->getBaseUrl() . '/Auth/Guardar')
->getElement('submit')->setLabel('new user');
$this->view->form = $form;
}
public function guardarAction(){
............
$form = new Forms_reguserForm();
if (!$form->isValid($this->_request->getPost())) {
return $this->_helper->redirector('registrarse');
}
...........
}
Tengo 2 funciones Registrase y Guardar. Registrase es la funcion que carga el formulario y Guardar la que lo valida, Pero cuando hay errores el formulario se crea de nuevo en blanco, como puedo corregir este fallo.
En cuanto a los decorators, no he tocado nada, ya que no enciendo su estructura. Pero preferia hacerlo con una tabla e ir colocando los elementos de uno en uno.
lee sobre como crear validators propios aca
http://framework.zend.com/manual/en/...nts.validators
esto
Código PHP:
$form->setMethod('post')
->setAction($this->getRequest()->getBaseUrl() . '/Auth/Guardar')
->getElement('submit')->setLabel('new user');
te convendria ponerlo en el init() de Forms_reguserForm
y el error aca
Código PHP:
public function guardarAction(){
............
$form = new Forms_reguserForm();
if (!$form->isValid($this->_request->getPost())) {
return $this->_helper->redirector('registrarse');
}
...........
}
esta en que si no isValid() haces un redirect, entonces el form se vuelve a generar en la nueva pagina pero sin los errores, la logica en Zend funciona al reves:
Código PHP:
if ($form->isValid()) {
// todo ok, aca podes hacer los redirects que quieras total no hubo ningun error
}
//si no entra al if, el form se va a volver a mostrar con los errores que ocurrieron automaticamente
Para hacer la tabla tendras que entender el uso de los decorators, no es muuuy complicado pero la primera impresion puede ser algo confusa... igualmente lee un poco, hace algunas pruebas y las dudas que tengas las preguntas aca y listo
Saludos