微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – eav_entity_type在安装时没有引用

起源…

我有一个带有安装脚本的模块(常见的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'));

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

…寻找…

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

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

问题:

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

一个possibly related question

解决方法:

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

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

此致
伊万

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐