Estamos actualizando el sitio. Durante unos días es posible que veas fallos de diseño o de traducción. La documentación sigue disponible: si una página se ve mal, recárgala más tarde.

Inicio Laravel 10.x Redirecciones HTTP

Redirecciones HTTP

10.x 7 de mar. de 2026

#Creando redirecciones

Las respuestas de redirección son instancias de la clase Illuminate\Http\RedirectResponse, y contienen los encabezados necesarios para redirigir al usuario a otra URL. Hay varias formas de generar una instancia de RedirectResponse. El método más simple es usar el helper global redirect:

Route::get('/dashboard', function () {
    return redirect('/home/dashboard');
});

A veces puede que desee redirigir al usuario a su ubicación anterior, por ejemplo, cuando un formulario enviado es inválido. Puede hacerlo usando el helper global back. Dado que esta función utiliza la sesión, asegúrese de que la ruta que llama a la función back use el grupo de middleware web o tenga aplicado todo el middleware de sesión:

Route::post('/user/profile', function () {
    // Validar la solicitud...

    return back()->withInput();
});

#Redirigiendo a rutas nombradas

Cuando llama al helper redirect sin parámetros, se devuelve una instancia de Illuminate\Routing\Redirector, lo que le permite llamar a cualquier método en la instancia Redirector. Por ejemplo, para generar una RedirectResponse a una ruta nombrada, puede usar el método route:

return redirect()->route('login');

Si su ruta tiene parámetros, puede pasarlos como segundo argumento al método route:

// Para una ruta con el siguiente URI: profile/{id}

return redirect()->route('profile', ['id' => 1]);

Para mayor comodidad, Laravel también ofrece la función global to_route:

return to_route('profile', ['id' => 1]);

#Población de parámetros mediante modelos Eloquent

Si está redirigiendo a una ruta con un parámetro "ID" que se obtiene de un modelo Eloquent, puede pasar el modelo directamente. El ID se extraerá automáticamente:

// Para una ruta con el siguiente URI: profile/{id}

return redirect()->route('profile', [$user]);

Si desea personalizar el valor que se coloca en el parámetro de la ruta, debe sobrescribir el método getRouteKey en su modelo Eloquent:

/**
 * Obtener el valor de la clave de ruta del modelo.
 */
public function getRouteKey(): mixed
{
    return $this->slug;
}

#Redirigiendo a acciones de controladores

También puede generar redirecciones a acciones de controladores. Para ello, pase el controlador y el nombre de la acción al método action:

use App\Http\Controllers\HomeController;

return redirect()->action([HomeController::class, 'index']);

Si la ruta de su controlador requiere parámetros, puede pasarlos como segundo argumento al método action:

return redirect()->action(
    [UserController::class, 'profile'], ['id' => 1]
);

#Redirigiendo con datos flash en la sesión

Redirigir a una nueva URL y flashear datos en la sesión generalmente se hacen al mismo tiempo. Normalmente, esto se realiza después de ejecutar una acción con éxito, cuando se flashea un mensaje de éxito en la sesión. Para mayor comodidad, puede crear una instancia de RedirectResponse y flashear datos en la sesión en una sola cadena de métodos fluida:

Route::post('/user/profile', function () {
    // Actualizar el perfil del usuario...

    return redirect('/dashboard')->with('status', '¡Perfil actualizado!');
});

Puede usar el método withInput proporcionado por la instancia RedirectResponse para flashear los datos de entrada de la solicitud actual en la sesión antes de redirigir al usuario a una nueva ubicación. Una vez que la entrada ha sido flasheada en la sesión, puede recuperarla fácilmente durante la siguiente solicitud:

return back()->withInput();

Después de que el usuario sea redirigido, puede mostrar el mensaje flasheado desde la sesión. Por ejemplo, usando la sintaxis Blade:

@if (session('status'))
    <div class="alert alert-success">
        {{ session('status') }}
    </div>
@endif