当我使用 laravel 6.0 单击添加到卡片按钮时,我想将产品项目显示到购物车中?

Posted

技术标签:

【中文标题】当我使用 laravel 6.0 单击添加到卡片按钮时,我想将产品项目显示到购物车中?【英文标题】:I want to show product items into shopping cart when i click add to card button using laravel 6.0? 【发布时间】:2020-03-24 10:28:51 【问题描述】:

当我点击添加到卡片按钮时,我试图将产品项目显示到购物车中,如何修复它错误?调用未定义函数 Gloudemans\Shoppingcart\array_get()

https://flareapp.io/share/B5ZeYg7o#F46

控制器

    public function cart()
    
    return view('frontend/cart');
    
     public function addCart(Request $request)
    
    $product = Product::findOrFail($request->id);

    $cartItem = Cart::add([
    'id' => $product->id,
    'product_name' => $product->name,
    'product_brand'=>$product->product_brand,
     'qty' => $request->qty,
     'product_price' => $product->product_price,
       ]);
     Cart::associate($cartItem->rowId, 'App\Product');
      return redirect()->route('cart.index');
       
       

模型产品

             class product extends Model
              
         protected $fillable =[ 'id', 'product_name', 'product_price', 
         'product_image', 
          'product_brand'];
         

html 视图

                 <tbody class="cart-table__body">
                 @foreach (Cart::content() as $item)
                 <tr class="cart-table__row">
                <td class="cart-table__column cart-table__column--image">
                  <a href=""><img src=" asset($item->model->image) " >
                   </a>
                    </td>
                    <td class="cart-table__column cart-table__column--product">
                    <a href="" class="cart-table__product-name">$item->model->product_name</a>    
                   </td>
                   <td class="cart-table__column cart-table__column--price" data-title="Price"> 
                   $item->model->product_price</td>
                   <td class="cart-table__column cart-table__column--quantity" data- 
                    title="Quantity">
                    <div class="input-number">
                    <input class="form-control input-number__input" type="number" min="1" value=" 
                    $item->qty">
                     <div class="input-number__add"></div>
                     <div class="input-number__sub"></div>
                     </div>
                     </td>
                    <td class="cart-table__column cart-table__column--total" data-title="Total"> 
                     </td>

                    <td class="cart-table__column cart-table__column--remove">
                     <a href="" class="btn btn-light btn-sm btn-svg-icon">
                     <svg  >
                     <use xlink:href="url('public/assets/images/sprite.svg#cross-12')"></use>
                      </svg>
                      </a>
                      </td>
                      </tr>
                       @endforeach
                       </tbody>

表单 html 视图

        <form action="route('cart.action')" method="post" 
         class="product__options">
          csrf_field() 
        <input type="hidden" name="id" value="$single_products->id">
        <input type="hidden" name="product_name" value=" 
        $single_products->product_name">
         <input type="hidden" name="product_image" value=" 
         $single_products- 
          >product_image">
          <input type="hidden" name="product_brand" value=" 
          $single_products->product_brand">
          <input type="hidden" name="product_price" value=" 
         $single_products->product_price">
         <div class="form-group product__option">
         <label class="product__option-label" for="product- 
          quantity">Quantity</label>
          <div class="product__actions">
           <div class="product__actions-item">
            <div class="input-number product__quantity">
            <input id="product-quantity" name="qty" class="input- 
             number__input form-control 
               form-control-lg" type="number" min="1" value="1">
                <div class="input-number__add"></div>
                <div class="input-number__sub"></div>
                </div>
                </div>
                <div class="product__actions-item product__actions-item-- 
                addtocart">
                <button class="btn btn-primary btn-lg">Add to 
                 cart</button>
                </div>
                <div class="product__actions-item product__actions-item-- 
                wishlist">
                <button type="button" class="btn btn-secondary btn-svg- 
                 icon btn-lg" data- 
                toggle="tooltip" title="Wishlist">
                <svg  >
                <use xlink:href=" 
                  url('public/assets/images/sprite.svg#wishlist- 
                  16')"></use>
                </svg>
                </button>
                </div>
                <div class="product__actions-item product__actions-item-- 
                 compare">
                <button type="button" class="btn btn-secondary btn-svg- 
                 icon btn-lg" data- 
                 toggle="tooltip" title="Compare">
                <svg  >
                <use xlink:href=" 
                 url('public/assets/images/sprite.svg#compare-16')"> 
                  </use>
                </svg>
                </button>
                </div>
                </div>
                </div>
                </form>


 Route::get('/cart','CartController@cart')->name('cart.index');

Route::post('cart/action','CartController@addcart')-

名称('cart.action');

【问题讨论】:

【参考方案1】:

Laravel 在 5.8/6.0 左右引入了重大更改,其中删除了许多辅助函数以支持使用外观。

问题在于这个函数:

arr_get()

这是错误的原因,不幸的是不再是标准 Laravel 构建的一部分。如果它在您自己的班级中,您可以将其更改为使用外观:

use Illuminate\Support\Arr;

然后在你的方法中:

Arr::get();

您可以检查是否有最新版本的购物车包,而不是更改供应商代码,这将与 Laravel 的更高版本兼容...或者您可以添加 the helper package from Laravel 以恢复那些帮助你的基础 Laravel 发行版。

【讨论】:

以上是关于当我使用 laravel 6.0 单击添加到卡片按钮时,我想将产品项目显示到购物车中?的主要内容,如果未能解决你的问题,请参考以下文章

单击按钮后在现有卡片旁边自动生成一张 CSS 卡片

Laravel 6.0 不支持 DELETE、PUT 方法

如何在 MUI 中单击卡片时添加波纹效果

Laravel 6.0 Eloquent - 按日期和状态排序

当用户单击 appBar 中的“+”号时,如何向 ListView 添加卡片?

如何对其中包含随机生成的数字的卡片列表进行排序?