好客户属性,我有一个多选项选择,我已经添加到管理客户网格。在客户管理管理网格中显示多选项客户属性
$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”的方式来显示管理网格内的这些多选项,我只是不知道?或者,我是否需要简单地获取逗号值爆炸并呼叫新的集合来构建显示值?任何帮助感谢!
好吧看来我需要扩展的选项渲染器管理部件电网。有趣的是,最模糊的答案是最有帮助的。 http://www.magentocommerce.com/boards/port.php/viewthread/25566/#t84377 – B00MER 2011-05-27 21:16:13