【发布时间】:2020-08-20 06:40:04
【问题描述】:
在我的电子商务网站中,我安装了 darryldecode/laravelshoppingcart 来添加购物车功能。
当我使用添加到购物车从产品页面将商品添加到购物车时,我收到此错误:- Darryldecode\Cart\Exceptions\InvalidItemException validation.required
这是我的第一个项目,请指导我如何解决这个问题。这个项目杀了我。在这个社区的帮助下,我可以完成这个项目。非常感谢。
CartController.php
class CartController extends Controller
{
public function index()
{
$cartItems = \Cart::session(auth()->id())->getContent();
return view ('cart',compact(cartItems));
}
public function show($id)
{
$product = Product::find($id);
return view('cart')->with(compact('product'));
}
public function destroy($itemId)
{
\Cart::session(auth()->id())->getContent();
return back;
}
public function add(Product $product)
{
// add the product to cart
\Cart::session(auth()->id())->add(array(
'id' => $product->id,
'name' => $product->prod_name,
'price' => $product->prod_price,
'quantity' => 1,
'attributes' => array(),
'associatedModel' => $product
));
return redirect()->route('cart.index');
}
}
web.php
Route::get('/cart', 'CartController@index')->name('cart.index');
Route::get('/cart/{cartItems}', 'CartController@add')->name('cart.add')->middleware('auth');
Route::get('/cart/destroy/{itemId}', 'CartController@add')->name('cart.destroy')->middleware('auth');
cart.blade.php
@foreach($cartItems as $items)
<tr>
<td class="text-center">
<a href="javascript:void(0)" onclick="$(this).parent().find('form').submit()" class="btn btn-danger">x</a>
<form action="{{ route('cart.destroy',$items->id) }}" method="post">
@method('DELETE')
<input type="hidden" name="_token" value="{{ csrf_token() }}">
</form>
</td>
<td class="d-none d-md-table-cell">
<a href="#"><img class="img-fluid max-width-100 p-1 border border-color-1" src="{{asset('/storage/admin/'.$items ['image'] ) }}" alt="Image Description"></a>
</td>
<td data-title="Product">
<a href="#" class="text-gray-90">{{ $items ['name'] }}</a>
</td>
<td data-title="Price">
<span class="">LKR {{ $items ['price'] }}.00</span>
</td>
<td data-title="Quantity">
<span class="sr-only">Quantity</span>
<!-- Quantity -->
<div class="border rounded-pill py-1 width-122 w-xl-80 px-3 border-color-1">
<div class="js-quantity row align-items-center">
<div class="col">
<input class="js-result form-control h-auto border-0 rounded p-0 shadow-none" type="text" value="1">
</div>
<div class="col-auto pr-1">
<a class="js-minus btn btn-icon btn-xs btn-outline-secondary rounded-circle border-0" href="javascript:;">
<small class="fas fa-minus btn-icon__inner"></small>
</a>
<a class="js-plus btn btn-icon btn-xs btn-outline-secondary rounded-circle border-0" href="javascript:;">
<small class="fas fa-plus btn-icon__inner"></small>
</a>
</div>
</div>
</div>
<!-- End Quantity -->
</td>
<td data-title="Total">
<span class=""></span>
</td>
</tr>
@endforeach
product.blade.php
<div class="d-none d-xl-block prodcut-add-cart">
<a href="{{route('cart.add',$p->id)}}" class="btn-add-cart btn-primary transition-3d-hover"><i class="ec ec-add-to-cart"></i></a>
</div>
【问题讨论】:
-
您是如何在上一个问题中解决这个完全相同的异常的?
-
在
CartController.php中检查public function add(Product $product) { dd($product->id); }
标签: php laravel e-commerce