Skip to main content

¿Qué es una respuesta?

Los controladores y las rutas necesitan devolver alguna respuesta al navegador del usuario. Laravel ofrece mecanismos sencillos para devolver diversos formatos: cadenas, arrays, vistas, redirecciones, JSON, etc.

Respuestas básicas

Devolver una cadena

La respuesta más simple es devolver una cadena. Laravel la convierte automáticamente en la respuesta HTTP adecuada.

Devolver un array

Al devolver un array, Laravel lo convierte automáticamente a JSON.
Si devuelves un modelo Eloquent o una colección directamente, también se convierten automáticamente a JSON. Es un patrón muy usado para APIs sencillas.

Devolver un modelo Eloquent

Objeto Response

Con el helper response() puedes devolver una respuesta detallada con código de estado HTTP y cabeceras específicas.
El primer argumento de response() es el cuerpo y el segundo el código de estado HTTP.

Códigos de estado HTTP habituales

Respuestas con vistas

Para mostrar una plantilla Blade desde el controlador usa view(). Es la respuesta más común en aplicaciones web.
view() recibe el nombre de la vista como primer argumento y un array de datos como segundo.
Tipar el retorno como Illuminate\View\View deja más clara la intención del código.

response()->view() para más control

Si necesitas indicar código de estado o cabeceras, usa response()->view().

Redirecciones

Redirección básica

El helper redirect() devuelve una respuesta de redirección. Se usa mucho para llevar al usuario a otra página tras enviar un formulario.
Uso en controlador:

Redirección a ruta con nombre

Con route() puedes indicar el destino de la redirección por el nombre de la ruta, sin escribir la URL. Aunque la URL cambie, no hay que modificar nada; usar rutas con nombre es una buena práctica.

Volver a la página anterior

Con back() vuelves a la página donde estaba el usuario. Muy usado tras un fallo de validación.

Redirección con mensaje flash

Con with() puedes redirigir dejando un mensaje en la sesión. Útil para mostrar un mensaje tras enviar un formulario con éxito.
Muéstralo en la plantilla Blade.

Respuestas JSON

Para APIs, usa response()->json(). La cabecera Content-Type: application/json se configura automáticamente.
También puedes indicar el código de estado.
Uso en controlador:
Devolver directamente un array o un modelo Eloquent también produce una respuesta JSON, pero response()->json() te da control fino sobre el código de estado y las cabeceras.

Cabeceras de respuesta

Con header() añades una cabecera HTTP a la respuesta.
Para configurar varias a la vez, usa withHeaders().

Ejemplo práctico: elección según la acción del controlador

Ejemplo de uso de respuestas según el caso.
1

Definir las rutas

2

Implementar el controlador

En una aplicación web, la elección básica es entre View y RedirectResponse. Las acciones de visualización devuelven View; las de cambio (crear/actualizar/eliminar) tras procesar devuelven RedirectResponse. Es el patrón habitual.

Próximos pasos

Validación

Aprende a validar los datos de entrada antes de devolver la respuesta.
Última modificación el 13 de julio de 2026