Ver Mensaje Individual
  #7 (permalink)  
Antiguo 17/02/2010, 07:09
rodrigo_00
 
Fecha de Ingreso: noviembre-2007
Ubicación: Lanus, Buenos Aires
Mensajes: 178
Antigüedad: 17 años, 1 mes
Puntos: 14
Respuesta: Formularios Zend

Cita:
Iniciado por Ferdinandum Ver Mensaje
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