当我通过会话将产品添加到购物车中时,我希望能够从购物车中逐一删除它们。我应该怎么做?这是我的CartController
public function add(Request $request, $id)
{
$product_from_db = Product::find($id);
$product = [];
$product['id'] = $id;
$product['title'] = $product_from_db->title;
$product['image'] = $product_from_db->image;
$product['slug'] = $product_from_db->slug;
$product['price'] = $product_from_db->price;
$product['quantity'] = $request->input('quantity');
$request->session()->push('cart', array_merge((array)Session::get('cart',[]), $product));
flash()->success('Prekė sėkmingai pridėtą į krepšelį.');
return redirect('/prekes');
}
public function show()
{
$products = session('cart');
$subtotal = [];
return view('cart.show')->with(array(
'products' => $products,
'subtotal' => $subtotal
));
}
这是我的推车:
@foreach($products as $p)
<tr>
<td class="col-md-6">
<div class="media">
<a class="thumbnail pull-left" href="#"> <img class="media-object" src="{{URL::to($p['image'])}}" style="width: 72px; height: 72px;"> </a>
<div class="media-body">
<a style="padding-left: 2%" href="{{URL::to('prekes/'.$p['slug'])}}" class="text-warning"><strong>{{$p['title']}}</strong></a>
</div>
</div>
</td>
<td class="col-md-1" style="text-align: center">
<input type="number" class="form-control" id="quantity" value="{{$p['quantity']}}">
</td>
<td class="col-md-1 text-center"><strong>{{number_format($p['price'], 2, '.', ',')}} €</strong></td>
<td class="col-md-1 text-center"><strong>{{number_format($p['price']*$p['quantity'], 2, '.', ',')}} €</strong></td>
<td class="col-md-1">
<button type="button" class="btn btn-danger">
<span class="glyphicon glyphicon-remove"></span> DELETE ITEM
</button></td>
</tr>
@endforeach
您能举几个例子,说明我应该如何从购物车中删除想要的商品吗?
我试图做到这一点:
public function delete($id)
{
$product = session::forget('cart', $id)->first();
$product->destroy($id);
return redirect()->back();
}
<a href="{{URL::to('jusu-prekiu-krepselis/trinti-preke/'.$p['id'])}}" type="button" class="btn btn-danger">
<span class="glyphicon glyphicon-remove"></span> Remove
</a>
我收到此错误: Call to a member function first() on null
好的,当我这样做时,它将产品从数据库而不是会话中移除。
现在删除时出现此错误:Undefined index: image
在我看来。
要删除特定项目并$id
更改您的
public function delete($id)
{
$product = session::forget('cart', $id)->first();
$product->destroy($id);
return redirect()->back();
}
和
public function delete($id)
{
$products = session('cart');
foreach ($products as $key => $value)
{
if ($value['id'] == $id)
{
unset($products [$key]);
}
}
//put back in session array without deleted item
$request->session()->push('cart',$products);
//then you can redirect or whatever you need
return redirect()->back();
}
希望能帮助到你 :)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句