Contenido del curso

Manos a la obra con nuestro proyecto

Formulario de búsqueda con Laravel y LIKE

Resumen

Configurar un formulario de búsqueda en Laravel es uno de esos pasos que transforman un proyecto estático en una aplicación interactiva. Aquí aprenderás cómo enlazar la vista, la ruta y el controlador para que tu buscador filtre registros reales desde la base de datos, ideal si estás construyendo tu primer CRUD con el framework.

¿Cómo se configura la ruta de un formulario en Laravel?

El primer paso ocurre en la plantilla, justo donde vive el formulario. Allí defines tres elementos básicos que conectan el HTML con tu aplicación.

  • La acción route('home'), que apunta a la ruta principal donde quieres enviar la consulta.
  • El método GET, que es el indicado cuando se trata de búsquedas porque expone los parámetros en la URL.
  • El atributo name, en este caso buscar, que será la llave para recuperar el dato escrito por el usuario.

Con esa base, al escribir cualquier palabra y presionar Enter, el navegador envía el parámetro a la URL. Ya tienes la mitad del camino resuelto.

¿Por qué usar GET en un formulario de búsqueda? Porque GET hace visible el parámetro en la URL, lo que permite compartir, guardar o reutilizar la consulta. Es el estándar para buscadores y filtros públicos.

¿Cómo recuperar el valor escrito en el input?

Una vez enviado el formulario, necesitas mostrar de vuelta lo que el usuario escribió. Para eso usas el atributo value dentro del input y la función request(), indicando el nombre del campo que quieres recuperar [00:38].

Este detalle parece menor, pero mejora muchísimo la experiencia: la persona ve su búsqueda reflejada en el campo y entiende que el sistema la recibió. Sin esto, el input se vacía con cada consulta y se pierde contexto.

¿Y el diseño visual del formulario?

Para que el buscador no se vea plano, se aplican utilidades de estilo al formulario y al input:

  • Una clase de crecimiento flexible para que el formulario ocupe el espacio disponible entre los elementos.
  • Un border con color de nivel 200 y bordes redondeados en el input.
  • Relleno (padding) nivel 2 arriba y abajo, nivel 4 a los lados.
  • Una anchura definida que mantenga proporción con el resto de la interfaz.

Con esos ajustes el formulario respira y se integra al layout sin esfuerzo extra.

¿Cómo filtrar resultados desde el controlador con Request?

Aquí está el corazón de la búsqueda. Aunque el formulario envía el parámetro y el input lo refleja, sin lógica en el controlador no hay filtrado real. La clase Request de Laravel es la encargada de leer ese valor dentro de Controllers/Page [01:42].

El flujo en el controlador queda así:

  1. Inyectas la clase Request en el método.
  2. Recuperas el valor del campo buscar desde la solicitud.
  3. Construyes la consulta con un where sobre la columna título.
  4. Usas el operador LIKE con comodines % a ambos lados de la variable para coincidencias parciales.

¿Qué hace LIKE con porcentajes en SQL? Busca coincidencias parciales dentro de un campo de texto. %palabra% encuentra el término sin importar qué haya antes o después, perfecto para buscadores.

Después de ese where, al actualizar el navegador verás la consulta funcionando. Si entras al home sin parámetros, aparecen todos los registros. Si escribes una palabra, el listado se filtra y puedes hacer clic en cualquier resultado para visitar la publicación completa.

¿Qué aprendiste sobre formularios de búsqueda en Laravel?

El flujo completo conecta tres capas que conviene tener claras:

  • Vista: el formulario con route, método GET y name definido, más el value que devuelve el término buscado usando request().
  • Ruta: el endpoint nombrado home que recibe la petición.
  • Controlador: la clase Request que captura el valor y lo inyecta en una consulta Eloquent con where y LIKE.

Este patrón es sencillo, pero cubre el caso real de un buscador funcional sobre una sola columna. A partir de aquí puedes extenderlo: agregar más campos al where, combinar criterios con orWhere, o paginar los resultados.

¿Cómo extenderías este buscador en tu propio proyecto? Cuéntame en los comentarios qué criterios agregarías al filtrado.