A free and open-source book on ZF3 for beginners

Translation into this language is not yet finished. You can help this project by translating the chapters and contributing your changes.

7.6. Los formularios y el Modelo-Vista-Controlador

En la sección anterior consideramos un caso de uso de un formulario muy simple: preparamos la plantilla de vista con código HTML para un formulario y un acción de controlador para mostrar el formulario e imprimir en la pantalla los datos crudos ingresados por el usuario. Sin embargo, usar los datos crudos ingresados por el usuario en una aplicación real tiene la desventaja de que no revisamos los datos enviados en búsqueda de errores y/o código malicioso. Ahora discutiremos como hacer validaciones.

En un sitio web basado en ZF3 que usa el patrón Modelo-Vista-Controlador el formulario usualmente se separa en modelos y vistas. Los modelos de formulario son responsables de la definición de los campos, filtrado y validación; y la vista o presentación de formulario se implementada generalmente con la ayuda de ayudantes de vista especiales.

Esta funcionalidad que se muestra esquemáticamente en la figura 7.8 permite crear modelos de formulario, agregar filtros y reglas de validación además de usar ayudantes de vista. Como podemos ver en la figura, se usa como base los formularios HTML estándar.

Figura 7.8. La funcionalidad de formularios en ZF3 Figura 7.8. La funcionalidad de formularios en ZF3

El enfoque MVC para trabajar con formularios tiene las siguientes ventajas:

7.6.1. Flujo de trabajo de un formulario típico

Hablando en general, se instancia un modelo de formulario dentro de nuestro método de acción de un controlador, luego recuperamos los datos enviados por el usuario mediante las variables PHP y las pasamos al modelo para la validación. Los ayudantes de vista de formularios se usan en la plantilla de vista para generar el código HTML del formulario. Este flujo de trabajo típico se ilustra en la figura 7.9.

Figura 7.9. Trabajar con formularios en una aplicación MVC Figura 7.9. Trabajar con formularios en una aplicación MVC

La flechas en la figura 7.9 denotan la dirección de las acciones:

  1. Primero, dentro del método de acción del controlador, recuperamos los datos enviados por el usuario del sitio revisando las variables PHP GET, POST y posiblemente otras. Luego creamos una instancia del modelo de formulario y le pasamos los datos enviados por el usuario. La función del modelo de formulario es revisar (validar) la corrección de los datos y si algo está mal se produce un o unos mensajes de error para cualquier campo del formulario invalido.

  2. Segundo, pasamos el modelo de formulario a la plantilla de vista .phtml para imprimirla en la pantalla (con la ayuda de la variable contenedor ViewModel). La plantilla de vista será capaz de acceder al modelo de formulario y llamar a sus métodos.

  3. Y finalmente, la plantilla de vista usa el modelo de formulario y los ayudantes de vista que provee Zend Framework 3 para imprimir en la pantalla los campos del formulario (y si es el caso mostrar los mensajes de error producidos en la etapa de validación). Como resultado el código HTML del formulario se produce.

En las siguientes secciones discutiremos esto con más detalle.


Top