【问题标题】:Why I am getting this error? : Darryldecode\Cart\Exceptions\InvalidItemException validation.required为什么我收到此错误? : Darryldecode\Cart\Exceptions\InvalidItemException 验证.required
【发布时间】: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-&gt;id); }

标签: php laravel e-commerce


【解决方案1】:

尝试检索关联模型产品

简单

Return $product

如果没有显示,这意味着购物车模型没有保存会话数据,因为产品数据没有检索到 或者使用 Request $requst 更容易

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-08
    • 1970-01-01
    • 2018-05-13
    • 2018-06-22
    • 2016-01-01
    • 2012-04-26
    相关资源
    最近更新 更多