[我想使用laravel 6.0单击添加到卡片按钮时将商品显示到购物车中?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[我想使用laravel 6.0单击添加到卡片按钮时将商品显示到购物车中?相关的知识,希望对你有一定的参考价值。
当我单击“添加至卡”按钮时,我试图将产品显示到购物车中,如何解决此错误?调用未定义的函数Gloudemans Shoppingcart array_get()
https://flareapp.io/share/B5ZeYg7o#F46
Controller
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, 'AppProduct');
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) }}" alt="product">
</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 width="12px" height="12px">
<use xlink:href="{{url('public/assets/images/sprite.svg#cross-12')}}"></use>
</svg>
</a>
</td>
</tr>
@endforeach
</tbody>
form html view
<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 width="16px" height="16px">
<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 width="16px" height="16px">
<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('购物车/操作','CartController @ addcart')-
name('cart.action');
答案
Laravel在6.0左右引入了重大更改,其中他们删除了许多辅助功能,而倾向于使用外墙。
问题在于此功能:
arr_get()
不再是标准Laravel构建的一部分。如果在您自己的班级中,则可以更改为使用立面:
use IlluminateSupportArr;
然后在您的方法中:
Arr::get();
除了更改供应商代码,您可以检查是否具有该软件包的最新版本,该版本与Laravel的更高版本兼容...或者您可以从Laravel添加一个帮助程序包,以将这些帮助程序带回进入您的基础Laravel发行版。
以上是关于[我想使用laravel 6.0单击添加到卡片按钮时将商品显示到购物车中?的主要内容,如果未能解决你的问题,请参考以下文章
单击按钮后如何显示下一张卡片并再次单击并再次显示下一张卡片到最后一张卡片并使用jquery提交?