在我的 Laravel 中,我正在使用this shoppingcart 。
当我将一种产品添加到购物车中时,我希望拥有associate()
和App\Product
模型。
这是我的代码:
public function store(Request $request)
{
// store product information to Cart
Cart::add($request->id, $request->name, 1, $request->price)
->associate('App\Product');
return redirect(route('cart.index'))
->with('success_message', 'محصول با موفقیت به سبد اضافه شد');
}
但是当我想访问模型$item->model->id
时,出现此错误:
Trying to get property 'id' of non-object (View: C:\xampp\htdocs\digikala\resources\views\cart.blade.php)
编辑:
我的购物车视图(cart.blade.php
)代码:
<table border="1" class="table">
@foreach (Cart::content() as $item)
{{ $item->model->id }}
@endforeach
</table>
答案 0 :(得分:0)
最后,我可以解决这个问题。
一切都与$request
方法中的store()
数据有关。
错误的形式是将产品添加到购物车。
我没有正确地将产品ID 发布到store()
方法中。
如果将来有人遇到此问题,我希望首先通过此代码测试$request
:
public function store(Request $request)
{
return $request;
}
答案 1 :(得分:0)
public function store(Request $request)
{
//verify the submitted product
$product = Product::where('slug', $request->input('slug'))->first();
//check if item is available
if($product === null){
return redirect()->route('cart.index')->with('error', 'Unable to add product to cart');
}
else{
Cart::add($product->id, $product->title, 1, $product->price)
->associate('App\Product');
return redirect()->route('cart.index')->with('success', 'Product added to cart');
}
return false;
}