Expertos en Drupal

Cómo crear formularios en Drupal 8 utilizando form api

Hacer uso de este sistema para crear formularios nos permitirá crear unos formularios mas consistentes, ya que no habrá que crear manualmente cada una de las plantillas

Formularios Drupal 8
Dani Fernandez
Dani Fernandez

Enero 16, 2020

¿Qué es form api?

La form api de Drupal es un grupo de clases que nos permite generar un formulario especificando su estructura mediante un array y a la vez, nos permite crear funciones para validar y procesar la información que es enviada por el usuario.

Hacer uso de este sistema para crear formularios nos permitirá crear unos formularios mas consistentes, ya que no habrá que crear manualmente cada una de las plantillas, agilizar la creación de nuevos formularios y mejorar la seguridad, ya que form api automáticamente limpia la información que ha sido enviada.

¿Cómo hacer uso de form api?

Lo primero que necesitaremos para crear un formulario será crear el modulo en el que se encontraran las clases que lo forman, en este caso al modulo le pondremos el nombre form_api:

Primero, crearemos la carpeta del modulo dentro de drupal/modules.
 

Form Api Drupal 8

Después, crearemos el archivo form_api.info.yml que es el encargado de definir la información básica de el modulo.

Form Api info yml

Ahora, crearemos la ruta que nos llevara al formulario. Hay que crear un archivo llamado form_api.routing.yml y dentro del mismo definiremos la ruta que queremos para el formulario, su titulo y especificaremos la clase encargada de generar el formulario.

Form api routing drupal

Una vez creada la ruta, declararemos la clase del formulario dentro de la carpeta modules/form_api/src/Form. En este caso la clase del formulario tiene el nombre de TestForm.

Test form api drupal

 

Al crear la clase, primero añadiremos las dependencias FrinBase y FrinStateInterface mediante el comando use.

frin base drupal

Ahora añadiremos la función buildForm que es la encargada de generar el formulario, utilizaremos el array $form para definir todos los campos que forman parte de él.
 

Build form test form api drupal

Una vez creado el formulario tenemos que crear las funciones para la validación y el envío del formulario en cuestión. Empezaremos por la validación, en la que validaremos que los elementos del formulario no estén vacíos.

Validacion form api drupal

Ahora, crearemos el método de envío, en este caso al enviar el formulario se imprimirá como mensaje los valores del mismo.
 

metodo de envio

Ya podemos proceder a probar nuestro formulario, como podemos ver todos los campos que hemos añadido al array ahora son campos con los que podemos interactuar. Una vez llenemos el formulario y lo enviemos debería mostrarse el valor de nuestros campos.
 

Formulario contacto


Probamos a enviarlo, podemos ver como se muestran el valor de los campos que hemos introducido.
 

Formulario enviado

Si por ejemplo, queremos modificar este formulario para que nos permita guardar información dentro de un tipo de contenido habrá que modificar la función submitForm y hacer que guarde una nueva entrada en la base de datos.

 

Comparte este artículo

Artículos Relacionados