En AuthenticatedSessionController tengo
public function create(Request $request): Response
{
return Inertia::render('auth/login', [
'canResetPassword' => Route::has('password.request'),
'status' => $request->session()->get('status'),
]);
}
¿Para qué sirve el 'status' que se pasa como propiedad de renderizado?
¡Claro! Entiendo tu pregunta sobre el 'status'
que se pasa como propiedad de renderizado en tu AuthenticatedSessionController
.
En Laravel, el 'status'
que ves ahí se utiliza comúnmente para pasar mensajes flash a la vista de Inertia.
Aquí te explico para qué sirve:
Mensajes Flash de Sesión: Laravel tiene una funcionalidad de "mensajes flash" que te permite almacenar datos en la sesión por una sola solicitud. Una vez que los datos son recuperados, se eliminan automáticamente de la sesión. Esto es perfecto para mensajes de notificación que solo necesitas mostrar una vez, como:
"¡Has iniciado sesión correctamente!"
"Tu contraseña ha sido restablecida."
"Tu perfil ha sido actualizado."
Uso en el Controlador:
$request->session()->get('status') recupera cualquier valor que haya sido "flasheado" a la clave 'status' en la sesión.
Por ejemplo, después de un inicio de sesión exitoso o un restablecimiento de contraseña, Laravel (o tu lógica personalizada) podría haber flasheado un mensaje así:
PHP// En algún lugar, por ejemplo, después de un inicio de sesión exitoso session()->flash('status', '¡Bienvenido de nuevo!');
O, como en el caso de la autenticación de Laravel Breeze/Jetstream, el estado del restablecimiento de contraseña se flashea automáticamente.
Paso a la Vista de Inertia:
Al pasar 'status' => $request->session()->get('status') al método Inertia::render(), estás haciendo que ese mensaje flash esté disponible como una propiedad (prop) en tu componente de React (en este caso, auth/login).
Uso en el Componente React (resources/js/Pages/Auth/Login.jsx):
Dentro de tu componente React, puedes acceder a esta propiedad y mostrar el mensaje al usuario. Por ejemplo:
JavaScript// resources/js/Pages/Auth/Login.jsx import React from 'react'; // ... otras importaciones ... export default function Login({ status, canResetPassword }) { // 'status' es una prop aquí // ... return ( // ... {status && ( <div className="mb-4 font-medium text-sm text-green-600"> {status} </div> )} // ... ); }
De esta manera, si hay un mensaje
'status'
en la sesión (como "Tu contraseña ha sido restablecida"), se mostrará en la página de login. Si no hay ningún mensaje flash con esa clave, la propstatus
seránull
y no se mostrará nada.
En resumen, el 'status'
se utiliza para pasar mensajes de notificación temporales del backend de Laravel al frontend de React a través de Inertia.
No hay comentarios:
Publicar un comentario