有没有办法添加一个自定义 EAV 属性,该属性在创建新实体时自动设置为其默认值?
我设置eav_attribute.is_required
了 to1
和eav_attribute.default_value
to 0
(默认值),但是当我创建一个新对象时它没有自动设置属性。
顺便说一下,EAV 实体类型是shipment
. 在销售数据存储在平面表中之前,我正在安装 1.3.2.4。
编辑
乔纳森戴问“你是如何添加属性的?”
在 ModuleDir\sql\module_setup\mysql4-install-0.1.0.php 中,我有以下代码:
$eav = new Mage_Eav_Model_Entity_Setup('sales_setup');
$eav->addAttribute('shipment', 'fieldname', array('type' => 'int'));
我还为以后版本的 Magento 提供了此代码(在销售实体从 EAV 转到平面表之后):
$w = $this->_conn;
$table = $this->getTable('sales_flat_shipment');
$w->addColumn($table, 'fieldname', 'int');
$w->addKey($table, 'fieldname', 'fieldname', 'index');
Jonathan Day 问道:“您是否检查过该属性已添加到 eav_attribute 中并带有正确的字段?”
是的,它已添加到 eav_attribute。并且该属性是可设置和可获取的。