【发布时间】:2011-05-25 21:47:38
【问题描述】:
好的,客户属性我有一个多选项选择,我已添加到管理客户网格中。
$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 方法:
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”方式可以在我不知道的管理网格中显示这些多选项?或者我是否需要简单地分解逗号值并调用新集合来构建显示值?任何帮助表示赞赏!
【问题讨论】:
-
好吧,看来我需要扩展管理小部件网格的选项渲染器。有趣的是,最模糊的答案是最有帮助的。 magentocommerce.com/boards/port.php/viewthread/25566/#t84377
标签: magento