2016-06-03 11 views
1

Ich mache einen Wagen. Jetzt kann ich der Sitzung Produkte hinzufügen und sie in meinem Warenkorb anzeigen. Das ist mein CartController Funktionen:Wie sende ich Werte an die Sitzung? Laravel

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 eine 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="{{$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 senden möchten einige Werte aus einer Form, wie würde ich hinzufügen t sie in der Sitzung? Sollte ich Post Method Code in add Funktion schreiben? Kannst du mir ein Beispiel geben? Ich möchte ein Formular erstellen, das für jeden Artikel eine Menge setzt.

+0

Mögliche Duplikat [Laravel Wie zusätzliche Daten/Wert in Session Laravel speichern] (http://stackoverflow.com/questions/37597273/laravel -How-to-Store-Extra-Daten-Value-in-Session-Laravel) – CarlosCarucce

+0

Werfen Sie einen Blick auf https://laravel.com/docs/5.2/session#basic-usage – CarlosCarucce

+0

@CarlosCarucce Okay, also ich sollte nur setze ein leeres Feld namens "quantity" und sende es dann an die Session in meinem Controller? –

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 Array zu speichern und nicht als einzelne Session-Variablen müssen Sie Ihre

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 Sitzung zu ersetzen mit

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

zu erhalten ändern

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

Und Sie in Ihrer Ansicht zeigen, dass Daten wie dieses

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

Ich möchte die Menge des Produkts zur Sitzung hinzufügen. Es ist ein neuer Wert. Und wie mache ich das? –

+0

@labas GamePage visogero Ich habe meine Antwort aktualisiert, damit Sie die gewünschte Lösung erhalten. Hoffe es hilft – KuKeC

+0

So jetzt muss ich ein Formular in meiner Sicht mit Eingabe namens "Menge" machen, um den Wert zu bekommen? –

Verwandte Themen