我在后台(下拉列表)中的产品管理中添加了一个属性,我想显示值而不是id。
这里是解决方案现在它可以更新它:)
Grid.phtml
protected function _prepareCollection()
{
...
$collection->addAttributeToSelect('manufacturer'); //my add attribute
...
}
protected function _prepareColumns()
{
// add this code
$attribute = Mage::getModel('eav/config')->getAttribute('catalog_product', 'manufacturer');
$options = $attribute->getSource()->getAllOptions(false);
$values = array();
foreach ($options as $option){
$values[$option['value']] = $option['label'];
}
$this->addColumn('manufacturer', //my add attribute
array(
'header'=> 'Manufacturer',
'width' => '100px',
'index' => 'manufacturer',
'type' => 'options',
'options' => $values,
));
答案 0 :(得分:0)
看看Mage_Adminhtml_Block_Catalog_Product_Grid :: _ prepareCollection()addColumn有很多属性。
您应该使用可能的值自定义选项索引。
中有一个很棒的教程在简历中,您应该使用以下代码。
protected function _getAttributeOptions($attribute_code)
{
$attribute = Mage::getModel('eav/config')->getAttribute('catalog_product', $attribute_code);
$options = array();
foreach( $attribute->getSource()->getAllOptions(true, true) as $option ) {
$options[$option['value']] = $option['label'];
}
return $options;
}
现在让我们将addColumn函数更新为:
$this->addColumn('manufacturer', //my add attribute
array(
'header'=> Mage::helper('catalog')->__('Manufacturer'),
'width' => '100px',
'index' => 'manufacturer',
'type' => 'text',
'options' => $this->_getAttributeOptions('attribute_code'),
));
答案 1 :(得分:0)
获取属性只需使用
$attribute = Mage::getSingleton('eav/config')->getAttribute(Mage_Catalog_Model_Product::ENTITY, 'manufacturer');
而不是你的!