informatica:programacion:php:frameworks:laravel:sesiones
¡Esta es una revisión vieja del documento!
Sesiones en Laravel
config/session.php
public function store() { if (request()->status == 'available' && request()->stock == 0) { session()->put("error", "If available, must have stock"); return redirect()->back(); } session()->forget("error"); $product = Product::create(request()->all()); return redirect()->route("products.index") }
En la vista, aprovecharemos el mensaje de sesión para mostrarlo:
resources/views/layouts/master.blade.php:
<!doctype html> <html lang="es"> <head> <title>Laravel Products</title> </head> <body> @if (session()->has("error")) <div class="alert alert-danger"> {{ session()->get("error") }} </div> @endif @yield("content") </body> </html>
Si queremos que un dato de sesión solo se mantenga hasta la siguiente petición, usaremos entonces el método flash():
public function store() { if (request()->status == 'available' && request()->stock == 0) { session()->flash("error", "If available, must have stock"); return redirect()->back(); } $product = Product::create(request()->all()); return redirect()->route("products.index") }
En la siguiente petición que se haga, no existirá el elemento de sesión.
También podemos crear mensajes de sesión para operaciones de éxito o información:
public function store() { if (request()->status == 'available' && request()->stock == 0) { session()->flash("error", "If available, must have stock"); return redirect()->back(); } // Si el producto se ha almacenado correctamente $product = Product::create(request()->all()); session()->flash("success", "The new product with ID {$product->id} was created"); return redirect()->route("products.index") }
En la vista, aprovecharemos el mensaje de sesión para mostrarlo:
resources/views/layouts/master.blade.php:
<!doctype html> <html lang=“es”> <head>
<title>Laravel Products</title>
</head> <body>
@if (session()->has("error"))
<div class="alert alert-danger">
{{ session()->get("error") }}
</div>
@endif
@if (session()->has("success"))
<div class="alert alert-success">
{{ session()->get("success") }}
</div>
@endif
@yield("content")
</body> </html>
informatica/programacion/php/frameworks/laravel/sesiones.1686576700.txt.gz · Última modificación: por tempwin
