好的,对于客户属性,我有一个多选项选择,我已将其添加到管理客户网格中。
$prodCode = Mage::getSingleton('eav/config')->getAttribute('customer','prod_codes');
$prodCodeOptions = $prodCode->getSource()->getAllOptions(false);
$prodOptions = array();
foreach($prodCodeOptions as $k)
$prodOptions[$k['value']] = $k['label'];
$this->addColumn('prod_codes', array(
'header' => Mage::helper('customer')->__('Product Code'),
'width' => '100',
'index' => 'prod_codes',
'type' => 'options',
'options' => $prodOptions,
'filter_condition_callback'
=> array($this, '_filterProdOptionsCondition'),
));
我确实已将属性添加到 Grid.php 顶部的集合中:
->addAttributeToSelect('prod_codes')
这是我的_filterProdOptionsCondition
method:
protected function _filterProdOptionsCondition($collection, $column) {
if(!$value = $column->getFilter()->getValue()) {
return;
}
$this->getCollection()->addFieldToFilter('prod_codes', array('finset' => $value));
#print($collection->getSelectSql());
}
现在如果我只有的话,这个工作就很好了ONE所选选项中,一旦我将多个选项应用于客户属性,我将在管理网格中得到空白结果,但它仍然是可搜索的。
仔细观察print($collection->getSelectSql());
未注释 我看到属性 ID 值以逗号分隔列表的形式返回。
现在我的问题是,有没有一种方法或“Magento”方式可以在我不知道的管理网格中显示这些多选项?或者我是否需要简单地分解逗号值并调用新的集合来构建显示值?任何帮助表示赞赏!