0

我有一个需要过滤的产品集合。为此,我覆盖了“Mage_Catalog_Block_Product_List”并具有以下代码:

$collection = parent::_getProductCollection();
$collection->addAttributeToFilter('language', array('in' => 
array('B','C','E')));
$collection->addAttributeToSort('language', 'DESC');

return $this->_productCollection; 

在前端这以 E,C,B 的形式排序

如果我将属性设置为“ASC”,则排序的形式为 B、C、E

但是我需要的是指定 E,B,C 的顺序

有什么办法可以做到这一点?

谢谢你的帮助。

更新

我试过 fin_Set 并查看了您发送的链接。我试过代码:

 $collection = parent::_getProductCollection();
 $collection->addAttributeToFilter('language', 
 array('finset'=>'E','C,E,B'));

return $this->_productCollection;

但是,这仅显示设置为“E”的产品我也尝试了您提供的代码,但我收到了一个空的产品列表。

4

1 回答 1

2

试试这个:

parent::_getProductCollection()
        ->addAttributeToFilter('language', array('finset'=>'B,C,E'));

return $this->_productCollection;

finset映射到 MySQL 的FIND_IN_SET

于 2013-01-31T09:34:10.547 回答