我在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的新手,请告诉我如何正确使用此购物车模块。上面的代码来自我的应用程序的操作,每次按下“添加到购物车”按钮时都会调用该操作。
答案 0 :(得分:0)
第一次尝试使用speckcart模块后才发现这个问题。我认为你的问题是你正试图设置CartItemId。数据库代码(在模块中提供)使购物车项目Id成为自动递增的主键字段,因此不应设置该字段,因为数据库应自动创建它。
此外,您必须提供数量,因为数量的数据库字段设置为不接受空值。
除此之外,一切都应该有效。
希望这有帮助。