我正在尝试运行此安装脚本,但我得到了一个例外 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>

在您的模块声明之间

许可以下: CC-BY-SA归因
scroll top