为了更新购物车中的信息,你必须将一个包含了 Row ID 和数量(quantity)的数组传递给 $this->cart->update() 函数:
说明: 如果数量被设置为 0 ,那么购物车中对应的项目会被移除。[code]$data = array(
‘rowid’ => ‘b99ccdf16028f015540f341130b6d8ec’,
‘qty’ => 3
);
$this->cart->update($data);
// 或者是一个多维数组
$data = array(
array(
‘rowid’ => ‘b99ccdf16028f015540f341130b6d8ec’,
‘qty’ => 3
),
array(
‘rowid’ => ‘xw82g9q3r495893iajdh473990rikw23’,
‘qty’ => 4
),
array(
‘rowid’ => ‘fh4kdkkkaoe30njgoe92rkdkkobec333’,
‘qty’ => 2
)
);
$this->cart->update($data);[/code]什么是 Row ID? 当一个项目被添加到购物车时,程序所生成的那个唯一的标识符就是row ID。创建唯一ID的理由是,当购物车中相同的商品有不同的选项时,购物车就能够对它们进行管理。
比如说,有人购买了两件相同的T-shirt (相同的商品ID),但是尺寸不同。商品ID(以及其它属性)都会完全一样,因为它们是相同的T-shirt。它们唯一的差别就是尺寸不同。
因此购物车必须想办法来区分它们,这样才能独立地管理这两件尺寸不同的T-shirt。而基于商品ID和其它相关选项信息来创建一个唯一的 “row ID” 就能解决这个问题。
在几乎所有情况下,更新购物车都将是用户通过 “查看购物车” 页面来实现的,因此对开发者来说,不必太担心"row ID",只要保证你的 “查看购物车” 页面中的一个隐藏表单字段包含了这个信息,并且确保它能被传递给表单提交时所调用的更新函数就行了。
请仔细分析上面的 “查看购物车” 页面的结构以获取更多信息。
文章来源:http://cwiki.ossez.com/pages/viewpage.action?pageId=2392141