我正在尝试添加列现有表 sales_flat_order 但是它正在返回错误

Can't retrieve entity config: sales/sales_flat_order

我的代码是:

<?php
 //@var $installer Mage_Sales_Model_Entity_Setup
$installer = $this;
$installer->startSetup();
$installer->run("
ALTER TABLE `{$installer->getTable('sales/sales_flat_order')}` ADD `giftwrap` SMALLINT NULL;
ALTER TABLE `{$installer->getTable('sales/sales_flat_order')}` ADD `giftwrap_price` DECIMAIL(12,5) NULL;
");
$installer->endSetup();

我可以知道我出错了哪里吗?

谢谢。

有帮助吗?

解决方案

sales_flat_order 是桌子的全名,您应该在 $installer->getTable()

如果你看 app\code\core\Mage\Sales\etc\config.xml 有表定义

<sales_resource>
    <class>Mage_Sales_Model_Resource</class>
    <deprecatedNode>sales_mysql4</deprecatedNode>
    <entities>
       ....
       <order>
           <table>sales_flat_order</table>
       </order>
       ...
    </entities>
</sales_resource>

所以 $installer->getTable() 应该获取参数 module_alias/table_alias.

就你而言

module_alias = sales

table_alias = order

$installer->getTable('sales/order')

结果,它将返回表名称 sales_flat_order.

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