当我使用 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 单击添加到卡片按钮时,我想将产品项目显示到购物车中?的主要内容,如果未能解决你的问题,请参考以下文章
Laravel 6.0 Eloquent - 按日期和状态排序