0

我在我的 ZF2 项目中使用 SpeckCart 购物车模块。我已经设置了模块,它成功地将商品添加到购物车,但它在每次调用时都会覆盖相同的商品,而不是添加新商品。请指导我哪里做错了,这里是代码:

    public function addAction(){
    $prod_id = $this->params()->fromPost('prod_id');
    $product = $this->getProductTable()->getProduct($prod_id);

    $item = new CartItem();
    $item->setDescription($product->name);
    $item->setCartItemId($prod_id);
    $item->setPrice($product->price);

    $cs = $this->getServiceLocator()->get('SpeckCart\Service\CartService');

    $cart = $cs->getSessionCart(true); 

// 我认为上面的行每次都在创建一个新的购物车,这就是问题所在。我不知道如何使它使用在之前调用中创建的现有购物车。

    $cs->addItemToCart($item, $cart);

我是 ZF 的新手,请告诉我应该如何正确使用这个购物车模块。上面的代码来自我的应用程序的一个操作,每次按下“添加到购物车”按钮时都会调用该操作。

4

1 回答 1

0

在第一次尝试 speckcart 模块后遇到了这个问题。我认为您的问题是您正在尝试设置 CartItemId。数据库代码(在模块中提供)使购物车项目 Id 成为自动递增的主键字段,因此不应设置它,因为数据库应自动创建它。

此外,您必须提供数量,因为数量的数据库字段设置为不接受空值。

除此之外,一切都应该工作。

希望这可以帮助。

于 2013-04-09T15:54:11.387 回答