Laravel Crinsane / LaravelShoppingcart associate()不起作用

时间:2019-03-01 08:05:16

标签: laravel laravel-5

在我的 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>

2 个答案:

答案 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;
}