1
私はカートテーブルとアイテムテーブルを持っており、それらの間には多対多の関係があります。ピボットテーブルには、追加の列、 'Quantity'と 'line_price'が含まれています。Laravel 5.2ピボットテーブルのデータ更新の問題
私のコントローラのメソッドは、数量を更新してline_priceを更新することです。
マイカートコントローラ方法:
protected function UpdateQuantity($cartid, $itemid, $quantity)
{
$cart = Cart::where('id', $cartid)->first();
$item = $cart->items()->where('item_id', $itemid)->first();
$item->pivot->quantity = $quantity;
$item->pivot->save();
$cart->refresh();
return Response::json([
'success' => true,
'message' => 'Item quantity updated in cart',
'lineprice' => $item->pivot->line_price,
]);
}
と私のカートモデルのメソッド:
public function refresh()
{
foreach ($this->items as $item){
$item->pivot->line_price = $item->pivot->quantity * $item->price;
$item->pivot->save();
}
$this->save();
}
私は、このメソッドを呼び出すときに、データベースが正常に更新しますが、JSONレスポンス「lineprice」はありませんメソッドが2回呼び出されない限り更新されます。
refresh()メソッドのロジックが正しいように思えるが、私は後に、私のJSON応答にlinepriceの更新された値を取得することができないよリフレッシュ()
どのように私はこの問題を解決することができますか? $item
変数は新しいline_priceで更新されていないためだ
TIA