从 magento 的自定义模块中添加 sales_flat_order_item 表中的新字段

Posted

技术标签:

【中文标题】从 magento 的自定义模块中添加 sales_flat_order_item 表中的新字段【英文标题】:Adding new field in sales_flat_order_item table from custom module in magento 【发布时间】:2012-07-30 05:23:42 【问题描述】:

在 magento 中,我创建了一个自定义模块并完成了模板和控制器部分,但对处理模型和数据库部分感到困惑。从我的自定义模块中,我想更改表 sales_flat_order_item 并添加一个附加字段。现在我创建了一个设置脚本,例如

$installer = $this;
$installer->startSetup();
$installer->run("
ALTER TABLE sales_flat_order_item ADD COLUMN new_field TEXT NULL;

ALTER TABLE sales_flat_invoice_item ADD COLUMN new_field TEXT NULL;

ALTER TABLE sales_flat_shipment_item ADD COLUMN new_field TEXT NULL;
");
$installer->endSetup(); 

在路径中 app\code\local\Namespace\Module\sql\_setup\mysql4-install-0.1.0.php 但是表格似乎没有改变,可以在脚本或模块文件中进行哪些配置来添加附加字段并与其他字段一样处理数据。任何人的帮助。谢谢。

【问题讨论】:

你用的是什么版本的magento? 【参考方案1】:

你的 config.xml 配置是什么样的?

<global></global>标签下需要添加:

<resources>
    <sql_setup>
        <setup>
            <module>Namespace_Module</module>
        </setup>
    </sql_setup>
</resources>

【讨论】:

很抱歉,在配置文件中添加了这个但没有结果。 你能发布你所有的 config.xml 文件吗?还请检查您的数据库:select * from core_resource where code like 'sql_setup'; 给定查询返回一行,代码:sql_setup,版本:0.4.0,data_version:0.4.0 表示你当前模块的版本是0.4.0。您可以升级但不能安装。如果要安装,则需要删除 core_resource 中的值(从 core_resource 中删除,其中代码如 'sql_setup')并将模块的版本更改为 0.1.0 (0.1.0) 在sql_setup下创建文件,例如:mysql4-upgrade-0.4.0-0.5.0.php,然后你需要将你的模块版本改为0.5.0。这意味着您要将其从 0.4.0 版升级到 0.5.0 版【参考方案2】:

试着放这样的东西

 $installer->run("
ALTER TABLE $this->getTable('sales_flat_shipment_item') ADD `new_field` TEXT NULL ;
");

【讨论】:

试过这个但对我不起作用。模型文件或配置 xml 中是否需要任何更改?有什么想法吗? 是的,版本值已更改。

以上是关于从 magento 的自定义模块中添加 sales_flat_order_item 表中的新字段的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Magento 中添加自定义字段来订购?

在 Magento 中为模块创建数据库函数

添加具有订单详细信息功能的自定义按钮 - Magento 2

Magento 2 - 在管理表单中添加多选状态

magento麦进斗客户地址属性不保存在sales_flat_order_address

使用自定义文本将项目添加到 Magento 购物车