Método flash en la sesiones en Laravel, gestiona mensajes temporales
- Publicado el 07 enero, 2025
- Palabras: 104
Aprende a administrar eficazmente datos de sesiones temporales en Laravel usando métodos flash, perfectos para mensajes de estado, alertas y notificaciones temporales de usuarios.

#Uso básico
A veces, es posible que desees almacenar elementos en la sesión para la próxima solicitud. Puedes hacerlo mediante el método flash. Los datos almacenados en la sesión mediante este método estarán disponibles inmediatamente y durante la siguiente solicitud HTTP. Después de la siguiente solicitud HTTP, los datos "flasheados" se eliminarán. Los datos flash son principalmente útiles para mensajes de estado de corta duración:
$request->session()->flash('status', 'Task was successful!');
#Métodos de datos Flash extendidos
// Conservar todos los datos flash
$request->session()->reflash();
// Conservar elementos específicos
$request->session()->keep(['username', 'email']);
// Flash solo para la solicitud actual
$request->session()->now('status', 'Task was successful!');
#Ejemplo práctico
A continuación se muestra una implementación práctica para un sistema de procesamiento de pedidos:
class OrderController extends Controller
{
public function store(OrderRequest $request)
{
try {
$order = Order::create($request->validated());
// Flash success message for next request
$request->session()->flash('status', 'Order created successfully!');
return redirect()->route('orders.show', $order);
} catch (Exception $e) {
// Flash error for current request only
$request->session()->now('error', 'Failed to create order.');
return back()->withInput();
}
}
public function update(OrderRequest $request, Order $order)
{
$order->update($request->validated());
// Flash multiple messages
$request->session()->flash('status', 'Order updated!');
$request->session()->flash('order_id', $order->id);
// Keep these flashed items for extra request
if ($request->has('preview')) {
$request->session()->keep(['status', 'order_id']);
}
return redirect()->route('orders.index');
}
public function processMultiStep(Request $request)
{
// Keep form data between steps
$request->session()->reflash();
return redirect()->route('orders.step-' . $request->next_step);
}
}
// In your blade view
@if (session('status'))
<div class="alert alert-success">
{{ session('status') }}
@if (session('order_id'))
<small>Order ID: {{ session('order_id') }}</small>
@endif
</div>
@endif
Los datos de la sesión Flash proporcionan una forma elegante de pasar mensajes temporales entre solicitudes en su aplicación Laravel.
Fuente: Harris Raftopoulos
Inicia la conversación
Hazte miembro de Antonio Jenaro para comenzar a comentar.
Regístrate ahora¿Ya estás registrado? Inicia sesión