php - 安装时没有引号的 eav_entity_type

标签 php magento installation 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'));

如果我在空数据库上运行我的 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 接口(interface)。您的代码不起作用,因为您使用的是 Eav 设置模型而不是销售模型。

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

真诚的, 伊万

关于php - 安装时没有引号的 eav_entity_type,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10228992/

相关文章:

javascript - 如何通过表单数据和 Ajax PHP 保存数组

php - 从一个网页重定向到另外两个网页

php - 无法在 Magento Admin Sales 上按客户全名搜索

javascript - Google Plus 按钮在 magento 中不起作用

ruby-on-rails - 无法安装 pg gem

php - PHP多连接套接字(广播问题)

php - 如何检查是否单击了提交,这样我的函数就不会触发?

magento - 在 Magento 中通过 PayPal 接受付款是否需要 SSL?

windows - Visual Studio 2012 安装限制

silverlight - 安装 Silverlight 是否需要本地管理员权限?