【发布时间】:2011-11-14 09:25:56
【问题描述】:
我想在管理客户网格 is_onHold 中添加一列(customer_entity 表中有名为 is_onHold 的列,tinyint(1) {想要存储布尔值}) .
我尝试了来自 Magento - Add column to customer grid 的 Fabrizio d 解决方案,但是,在尝试根据添加的列过滤结果时出现致命错误。
我在 _prepareColumns() 中添加了以下代码:
$this->addColumn('is_onHold', array(
'header' => Mage::helper('customer')->__('On Hold?'),
'width' => '150',
'index' => 'is_onHold',
'type' => 'options',
'options' => array(
1 => 'Yes',
0 => 'No',
)
));
以及_prepareCollection()中的以下代码:
->addAttributeToSelect('is_onHold')
效果很好,列已添加到网格中,但是,当我尝试根据新添加的列过滤记录时,出现错误
当我检查相应的错误报告时,它说:
a:5:{i:0;s:34:"Invalid attribute name: is_onHold.";i:1;s:5418:"#0 E:\wamp\www\magePrj\app\code\core\Mage\Eav\Model\Entity\Collection\Abstract.php(1166): Mage::exception('Mage_Eav', 'Invalid attribu...')
1 E:\wamp\www\magePrj\app\code\core\Mage\Eav\Model\Entity\Collection\Abstract.php(1255): Mage_Eav_Model_Entity_Collection_Abstract->_addAttributeJoin('is_onHold', 'inner')
2 E:\wamp\www\magePrj\app\code\core\Mage\Eav\Model\Entity\Collection\Abstract.php(292): Mage_Eav_Model_Entity_Collection_Abstract->_getAttributeConditionSql('is_onHold', Array, 'inner')
3 E:\wamp\www\magePrj\app\code\core\Mage\Eav\Model\Entity\Collection\Abstract.php(312): Mage_Eav_Model_Entity_Collection_Abstract->addAttributeToFilter('is_onHold', Array)
4 E:\wamp\www\magePrj\app\code\core\Mage\Adminhtml\Block\Widget\Grid.php(449): Mage_Eav_Model_Entity_Collection_Abstract->addFieldToFilter('is_onHold', Array)
这是因为我试图为布尔列使用类型选项吗? 我不确定我做错了什么......
【问题讨论】:
-
我也尝试更改列类型 ENUM,仍然是同样的错误...我 100% 确定我没有拼错,因为,我已经检查了两次,三次,我不知道多少次了……
标签: magento magento-1.5