我正在制作购物车。现在我可以将产品添加到会话中并在我的购物车中查看它们。这是我的CartController功能:
Add
功能:
public function add(Request $request, $id)
{
$request->session()->push('cart', $id);
flash()->success('Prekė sėkmingai pridėtą į krepšelį.');
return redirect('/prekes');
}
Show
功能:
public function show()
{
$products = session('cart');
$products = Product::find($products);
return view('cart.show', compact('products'));
}
这是Product
页面:
<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>
因此,如果我想从表单中发送一些值,我将如何在会话中插入它们?我应该在add
函数中编写post方法代码吗?你能举个例子吗?我想制作一个表单,为每个项目设置一个数量。
答案 0 :(得分:1)
据我所知,您希望将值数组添加到会话中(购物车可以表示为数组)。
要将值存储在数组中而不是单个会话变量,您需要更改
public function add(Request $request, $id)
{
$request->session()->push('cart', $id);
flash()->success('Prekė sėkmingai pridėtą į krepšelį.');
return redirect('/prekes');
}
与
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');
}
从会话替换
接收数据public function show()
{
$products = session('cart');
$products = Product::find($products);
return view('cart.show', compact('products'));
}
带
public function show()
{
$products = session('cart');
return view('cart.show', compact('products'));
}
在您的视图中,您可以显示此类数据
@if(Session::has('cart'))
@foreach(Session::get('cart') as $item)
{{$item['id']}}
{{$item['name']}}
{{$item['quantity']}}
@endforeach
@endif