【发布时间】:2018-03-08 08:48:03
【问题描述】:
我为得到这份工作而奋斗了一段时间!!!
我在 laravel 中创建了一个购物车
我希望用户能够编辑“数量”字段,“更新购物车”按钮应该计算项目“总计”和最终“总计”,但我无法使用它
这是我的 updatecart 方法;
public function updateCart(Request $request)
{
$cart = $request->session()->get('cart');
if(!$cart){
$cart = new Cart($cart);
}
$i = 0;
foreach($cart->items as $item){
$qty = $request->input($item['item']['id']);
$item['qty'] = $qty;
$item['total'] = $item['price'] * $qty;
$i++;
}
$cart->totalQty = array_sum($request->all());
$request->session()->put('cart', $cart);
//return $cart->items;
return redirect()->route('cart');
}
还有我的刀片模板;
<form method="post" action="{{route('updateCart')}}">
{{ csrf_field() }}
<table class="table table-hover">
<thead>
<tr>
<th class="text-center">Product</th>
<th class="text-center">Qty</th>
<th class="text-center">Rate</th>
<th class="text-center">Subtotal</th>
<th> </th>
</tr>
</thead>
<tbody>
@foreach($items as $item)
<tr>
<td class="col-sm-8 col-md-6 text-center">
<div class="media">
<a class="thumbnail pull-left" href="#"> <img class="media-object" src="{{asset('storage/'.$item['image'])}}" style="width: 100px; height: 72px;"> </a>
<div class="media-body">
<h4 class="media-heading"><a href="#">{{$item['item']['title']}}</a></h4>
</div>
</div>
</td>
<td class="col-sm-1 col-md-1" style="text-align: center">
<input type="number" class="form-control input-sm" name="{{$item['item']['id']}}" value="{{old($item['item']['id']) ? old($item['item']['id']) : $item['qty']}}">
</td>
<td class="col-sm-1 col-md-1 text-center">₦{{$item['price']}}</td>
<td class="col-sm-1 col-md-1 text-center"><strong>₦{{$item['total']}}</strong></td>
<td class="col-sm-1 col-md-1">
<a href="#"> <button type="button" class="btn btn-danger">
<span class="fa fa-remove"></span> Remove
</button>
</a>
</td>
</tr>
@endforeach
<tr>
<td> </td>
<td> </td>
<td>
<h3>Total</h3>
</td>
<td class="text-center">
<h3><strong>₦{{$total}}</strong></h3>
</td>
<td></td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> <button type="submit" class="btn btn-default">
<span class="glyphicon glyphicon-shopping-cart"></span>Update shopping Cart
</button> </td>
<td>
<a href="/"> <button type="button" class="btn btn-default">
<span class="glyphicon glyphicon-shopping-cart"></span> Continue Shopping
</button>
</a>
</td>
<td>
<a href={{route( 'checkout')}} class="btn btn-success" role="button">
Checkout <span class="glyphicon glyphicon-play"></span>
</a>
</td>
</tr>
</tbody>
</table>
</form>
提前谢谢你!
已编辑:
请注意,我不想更新每个商品的购物车,而是更新整个购物车!
【问题讨论】:
-
为什么不从请求中获取信息(当您有表单时)而不是从会话中获取信息?
-
@Maraboc 购物车存储在会话中!(或者我不明白)
-
只是为了测试试试这个:用
name="test"替换name="{{$item['item']['id']}}",在updateCart方法中:dd( $request->input('test');)你会得到数量的值。在购物车中尝试一种产品 -
@Maraboc 如果我这样做,我如何个性化购物车中的商品并从表单中分配其价值。
标签: php laravel shopping-cart