使用CI 2.1.1和本机购物车库
如果我多次插入一个项目(具有相同的产品ID,相同的选项),它将替换而不是增加数量。
这可能是一个错误,我错过了什么,或者自己添加此功能的最佳方法是什么?
答案 0 :(得分:7)
所以这是我的解决方案,更改为系统/库/ Cart.php在行号。 233至244
可能有更好的方法可以做到这一点,但它可以解决问题。我不明白为什么功能不存在
// EDIT: added check if idential rowid/item already in cart, then just increase qty
// without this addition, it would not increase qty but simply replace the item
if (array_key_exists($rowid, $this->_cart_contents))
{
$this->_cart_contents[$rowid]['qty'] += $items['qty'];
}
else
{
// let's unset this first, just to make sure our index contains only the data from this submission
unset($this->_cart_contents[$rowid]);
// Create a new index with our new row ID
$this->_cart_contents[$rowid]['rowid'] = $rowid;
// And add the new items to the cart array
foreach ($items as $key => $val)
{
$this->_cart_contents[$rowid][$key] = $val;
}
}
答案 1 :(得分:2)
这不是一个错误。以这种方式看待它:你告诉CI你想在购物车中购买1件产品。如果它已经存在,它会保持这种状态。 rowid
确实会更新。
编辑核心库不是一个好主意。这使得您的应用程序依赖于您所做的更改,并且当您更新CI并忘记再次更改核心时,它可能会破坏它。
如果您真的希望每次用户点击“添加”时都能增加qty
我建议做一些与你所做的相似的事,但在你身上model
。
检查产品是否已装入购物车,获取qty
并将现有qty
添加到新产品中。
这有意义吗?