我试图通过categroy_id对购物车中的商品进行整理:
$cartItems = Mage::getModel("checkout/cart")->getItems()
->addFieldToSelect('name')
->addFieldToSelect('category_id')
->addAttributeToSort('category_id', 'ASC');
echo $cartItems->getSelect(); //debug info
foreach($cartItems as $item) {
echo $this->getItemHtml($item);
}
Magento抱怨方法addAttributeToSort不存在,看看,当然它没有定义。
执行此查询的正确方法是什么?
否则,
答案 0 :(得分:0)
您可以尝试以下代码:
$collection = Mage::getModel('checkout/cart')->getItems()
->addFieldToSelect('name')
->addFieldToSelect('category_id')
->addOrder('category_id', 'asc');
addAttributeToSort()
适用于某些集合,但不适用于结帐/购物车模型。
我希望这有帮助!
答案 1 :(得分:0)
当您运行Mage::getModel("checkout/cart")->getItems()
时,您会获得一系列报价项目,而不是产品。因此,您可以访问的sales_flat_quote_item表中没有category_id。
如果您想要访问该产品,您必须循环您的报价项目集合并在每个项目上运行->getProduct()
。然后,您可以调用产品上的函数,例如->getCategoryIds()
,以获取已分配产品的类别ID列表。