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'':
Laravel Products
@if (session()->has("error"))
{{ session()->get("error") }}
@endif
@yield("content")
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'':
Laravel Products
@if (session()->has("error"))
{{ session()->get("error") }}
@endif
@if (session()->has("success"))
{{ session()->get("success") }}
@endif
@yield("content")