首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用拉拉手推车展示产品

用拉拉手推车展示产品
EN

Stack Overflow用户
提问于 2017-11-07 01:31:56
回答 1查看 717关注 0票数 0

我有laravel 5.5项目,我用session制作了cart系统,调试它时,它很好地工作,并将产品添加到cart中,但是在cart视图中获得具有foreach的产品时,我有问题,下面是错误:

为foreach()提供的无效参数

这是我的刀片代码:

代码语言:javascript
复制
@if (Session::has('cart'))
    @foreach($products as $product)
        {{$product->title}}
    @endforeach
@else
    no product
@endif

这是我的Cart model

代码语言:javascript
复制
public $items;
public $totalQty = 0;
public $totalPrice = 0;

public function __construct($oldCart) {
   if ($oldCart) {
        $this->items = $oldCart->items;
        $this->items = $oldCart->totalQty;
        $this->items = $oldCart->totalPrice;
   }
}

public function add($item, $id) {
   $storedItem = ['qty' => 0, 'price' => $item->price, 'item' => $item];
   if ($this->item) {
        if (array_key_exists($id, $this->items)) {
          $storedItem = $this->items[$id];
        }
   }
   $storedItem['qty']++;
   $storedItem['price'] = $item->price * $storedItem['qty'];
   $this->items[$id] = $storedItem;
   $this->totalQty++;
   $this->totalPrice += $item->price;
}

这是我的CartController

代码语言:javascript
复制
public function AddToCart(Request $request, $id)
{
        $product = Product::find($id);
        $oldCart = Session::has('cart') ? Session::get('cart') : null;
        $cart = new Cart($oldCart);
        $cart->add($product, $product->id);
        $request->session()->put('cart', $cart);
        return redirect()->back();
}

public function index()
{
      if (!Session::has('cart')) {
        return view('frontend.cart');
      }
      $oldCart = Session::get('cart');
      $cart = new Cart($oldCart);
      return view('frontend.cart', ['products' => $cart->items, 'totalPrice' => $cart->totalPrice]);
}

这是我的路线:

代码语言:javascript
复制
//Cart
Route::resource('/cart', 'CartController', ['except' => ['show', 'create']]);

// Session route for add to cart
Route::get('/add-to-cart/{id}', [
  'uses' => 'CartController@AddToCart',
  'as' => 'product.addToCart'
]);

有人知道我的刀片循环有什么问题吗?

EN

回答 1

Stack Overflow用户

发布于 2017-11-07 03:59:41

似乎出现了以下错误:

代码语言:javascript
复制
public function __construct($oldCart) {
  if ($oldCart) {
    $this->items = $oldCart->items;
    $this->items = $oldCart->totalQty;
    $this->items = $oldCart->totalPrice;
  }
}

看起来,$this->items = $oldCart->totalPrice;是一个浮点值,而不是一个数组。

也许应该是:

代码语言:javascript
复制
public function __construct($oldCart) {
  if ($oldCart) {
    $this->items = $oldCart->items;
    $this->totalQty = $oldCart->totalQty;
    $this->totalPrice = $oldCart->totalPrice;
  }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47148589

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档