/ / Wie sende ich Werte an die Sitzung? Laravel - php, Laravel

Wie sende ich Werte an die Sitzung? Laravel - php, Laravel

Ich mache einen Warenkorb. Vorläufig kann ich Produkte zur Sitzung hinzufügen und sie in meinem Warenkorb anzeigen. Dies sind meine CartController-Funktionen:

Add Funktion:

public function add(Request $request, $id)
{
$request->session()->push("cart", $id);
flash()->success("Prekė sėkmingai pridėtą į krepšelį.");
return redirect("/prekes");
}

Show Funktion:

public function show()
{

$products = session("cart");
$products = Product::find($products);
return view("cart.show", compact("products"));
}

Und das ist ein Product Seite:

    <div class="mainContainer">
<h1>{{$product->title}} <i class="fa fa-shopping-cart" aria-hidden="true"></i></h1><br>
<img style="height: 200px" src="/images/{{$product->image}}"><br>
<p>{!! $product->description !!}</p>
<div class="bootstrap-wrapper">
<a style="float: right; margin-top: -150px; margin-right: 300px; font-size: 24px"
href="/prideti-i-krepseli/{{$product->id}}" class="btn btn-success">
<i class="glyphicon glyphicon-shopping-cart"></i> Pridėti į krepšelį</a><br>
{{number_format($product->price, 2, ".", ",")}} EUR
</div>
</div>

Also, wenn ich einige Werte aus einem Formular senden möchte, wie würde ich sie in Sitzung einfügen? Soll ich Post Method Code in schreiben add funktionieren? Kannst du mir ein Beispiel geben? Ich möchte ein Formular erstellen, das für jeden Artikel eine Menge setzt.

Antworten:

1 für die Antwort № 1

Von dem, was ich verstehe, möchten Sie Array von Werten in Sitzung hinzufügen (Einkaufswagen kann als Array dargestellt werden).

Um Werte in einem Array und nicht als einzelne Session-Variable zu speichern, müssen Sie Ihre ändern

public function add(Request $request, $id)
{
$request->session()->push("cart", $id);
flash()->success("Prekė sėkmingai pridėtą į krepšelį.");
return redirect("/prekes");
}

mit

public function add(Request $request, $id, $quantity)
{
$product_from_db = Product::find($id);
$product = [];
$product["id"] = $id;
//you can add all data you need like this etc...
$product["name"] = $product_from_db->name;
$product["quantity"] = $quantity;
$request->session()->push("cart", array_merge((array)Session::get("cart",[]), $product));
flash()->success("Prekė sėkmingai pridėtą į krepšelį.");
return redirect("/prekes");
}

Um Daten von der Sitzung zu erhalten, ersetzen Sie sie

public function show()
{
$products = session("cart");
$products = Product::find($products);
return view("cart.show", compact("products"));
}

mit

public function show()
{
$products = session("cart");
return view("cart.show", compact("products"));
}

Und in Ihrer View zeigen Sie solche Daten an

@if(Session::has("cart"))
@foreach(Session::get("cart") as $item)
{{$item["id"]}}
{{$item["name"]}}
{{$item["quantity"]}}
@endforeach
@endif