安装时没有引用的eav_entity_type

Kat*_*ico 4 php installation magento entity-attribute-value quote

起源...

我有一个带有安装脚本的模块(常见的mysql4-upgrade-0.1.0-0.1.1.php),添加了一个引用的属性:

$eav = new Mage_Eav_Model_Entity_Setup('sales_setup');
$eav->addAttribute('quote', 'my_attribute', array('type' => 'varchar'));
Run Code Online (Sandbox Code Playgroud)

如果我在空数据库上运行magento存储,则运行设置脚本并且"错误的实体ID"错误会破坏该进程.调用堆栈指向我的安装脚本.

...寻找...

如果我去数据库,我看到eav_entity_type表填充但只有8种类型:报价类型没有注册!

这就是Mage_Eav_Model_Entity_Setup-> getEntityTypeId()抛出异常的原因.

问题:

我不知道为什么引用实体不是用其他实体创建的.在模块设置之前,如何强制magento注册报价实体?还有其他选择吗?

有一个可能相关的问题

Iva*_*nyi 6

从1.4.x主演所有实体都转移到扁平结构.但是仍然可以使用Mage_Sales_Model_Mysql4_Setup类的伪EAV接口.您的代码无效,因为您使用的是Eav设置模型而不是Sales 1.

此外,默认情况下,app/code/local /中的所有模块设置脚本仅在app/code/core中的脚本之后处理,因此您可以选择不指定对核心模块的依赖性.

真诚的,伊万