题
我正在尝试运行此安装脚本,但我得到了一个例外 Wrong entity ID
. 。尝试通过调试器进行调试,但我对Magento的EAV架构并不熟悉,因此迷路了。
这是我的config.xml的部分
<resources>
<namespace_mymodule_setup>
<setup>
<module>Namespace_Mymodule</module>
<class>Namespace_Mymodule_Model_Resource_Eav_Mysql4_Setup</class>
</setup>
<connection>
<use>core_setup</use>
</connection>
</namespace_mymodule_setup>
<namespace_mymodule_write>
<connection>
<use>core_write</use>
</connection>
</namespace_mymodule_write>
<namespace_mymodule_read>
<connection>
<use>core_read</use>
</connection>
</namespace_mymodule_read>
</resources>
我已经通过从 Mage_Eav_Model_Entity_Setup
class Namespace_Mymodule_Model_Resource_Eav_Mysql4_Setup extends Mage_Eav_Model_Entity_Setup {
}
最后,我的安装脚本内容是:
<?php
$installer = $this;
$installer->startSetup();
$installer->addAttribute( 'quote_payment', 'b_transaction_id', array() );
$installer->addAttribute( 'order_payment', 'b_transaction_id', array() );
$installer->addAttribute( 'invoice', 'b_transaction_id', array() );
$installer->addAttribute( 'creditmemo', 'b_transaction_id', array() );
$installer->endSetup();
错误是什么?而且,这个脚本从另一个模块成功运行(这是一个重写),但我不确定它是否有如何检查?
解决方案
Mage_sales周围的整个EAV不再是EAV。要添加新属性“ eav-way”,您必须使用销售设置类,该类别采用扁平桌设计。
尝试将设置类更改为 Mage_Sales_Model_Resource_Setup
您正在使用什么Magento版本?
其他提示
人们在Magento2中遇到此错误:
这似乎是设置过程中依赖顺序的问题:使用自定义属性升级。在供应商/modulename/etc/module.xml中,请确保为您的属性所依赖的每个模块包含一个序列标签。如果您在设置/installdata.php文件中将属性添加到产品中,则需要包括:
<sequence>
<module name="Magento_Catalog" />
</sequence>
在您的模块声明之间