2016-12-26 3 views
-1

haben eine Form wie folgt. Dies ist ein Update-Formular, ich muss nur die Menge foreach Produkt im Warenkorb aktualisieren. Aber ich habe versucht, jedes Ergebnis zu explodieren und nicht arbeiten ... es gibt object2array Konvertierungsfehler zurück ... es ist das erste Mal, dass ich diesen Fehler bekomme Wie kann ich das in DB speichern?Warenkorb Update in Laravel

<form action="update"> 
    @foreach($products as $product) 
<input type="text" name="products[]"> 
<input type="text" name="qty[]"> 
@endforeach 
<input type="submit" calss="btn btn-primary"> 

Dies ist mein Controller:

Route::post('aggiorna', function() { 
$quantita = Input::all(); 
$carrelli = \App\Models\Carrello::where('entry_by', \Session::get('uid'))->get(); 
    $quantita = explode(',', $quantita); 
    $i = 0; 
    foreach($carrelli as $carrello) { 
     $carrello->quantita = $quantita[$i]; 
     $i = $i++; 
    } 
    return Redirect::to('carrello'); 

}); 

Vielen Dank im Voraus.

+0

Stellen Sie sicher, dass Sie ein 'value' Attribut an das' qty [] 'Feld übergeben! Es scheint mir nach dem gegebenen Code nicht! –

+0

Natürlich ist Wert vorhanden ... – rubenSousa

+0

Auf welchem ​​Teil des Codes erhalten Sie den Fehler, ist es innerhalb der 'Ansicht' oder seiner innerhalb Ihres' Controllers', wenn es in einer dieser dann auf welcher Linie? –

Antwort

-1

Sie die Iteration für jede $carreli, die in Ihrer Datenbank vorhanden sind, jedoch nie den Wert speichern.

Route::post('aggiorna', function() { 
    $quantita = Input::all(); 
    $carrelli = \App\Models\Carrello::where('entry_by', \Session::get('uid'))->get(); 
    $quantita = explode(',', $quantita); 
    $i = 0; 
    foreach($carrelli as $carrello) { 
     $carrello->quantita = $quantita[$i]; 
     $i = $i++; 
     $carrelo->save(); 
    } 
    return Redirect::to('carrello'); 

}); 

die $carrelo->save(); hinzufügen, nachdem Sie den Wert aktualisieren, um sie zu db zu speichern.

Auch vorsichtig, wenn Sie Input::all(); verwenden. Das bedeutet, dass Ihr Datenarray sowohl Produkte als auch Mengen enthält. Ich würde vorschlagen, mit dem folgenden Code:

Route::post('aggiorna', function() { 
    $quantita = Input::get('qty'); 
    $products = Input::get('products'); 
    $carrelli = \App\Models\Carrello::where('entry_by', \Session::get('uid'))->get(); 
    $quantita = explode(',', $quantita); 
    $products = explode(',', $products); 
    $i = 0; 
    foreach($carrelli as $carrello) { 
     $carrello->quantita = $quantita[$i]; 
     $carrello->products = $products[$i]; 
     $i = $i++; 
     $carrelo->save(); 
    } 
    return Redirect::to('carrello'); 

}); 

Da aber ich weiß nicht, was Sie versuchen zu erreichen, habe ich geschrieben, beide Lösungen hier.