无法检索实体配置:sales/sales_flat_order
-
22-10-2019 - |
题
我正在尝试添加列现有表 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
.