Magento - 将字段添加到sales_flat_quote

时间:2011-09-01 15:47:22

标签: magento

我创建了一个模块,需要在sales_flat_quote表/模型中添加一个额外的字段。

在我的安装脚本中,一切似乎都能正常工作,并且可以在数据库中看到新字段。

检索引用对象并在新字段中存储值时,该值永远不会记录到数据库中。保存方法不会产生错误或异常,但值永远不会坚持。

如果它有所不同,我试图在结账过程中将值保存到观察者的报价中。

以下是我在安装脚本中使用的代码:

$setup = new Mage_Sales_Model_Mysql4_Setup('sales_setup');
$setup->getConnection()->addColumn(
        $setup->getTable('sales_flat_quote'),
        'test_attribute',
        'text NULL DEFAULT NULL'
    );

$setup->addAttribute('quote', 'test_attribute', array('type' => 'text', 'visible' => false));

我错过了一些明显的东西吗?

1 个答案:

答案 0 :(得分:-1)

不知道为什么要创建此对象$setup = new Mage_Sales_Model_Mysql4_Setup('sales_setup'); 如果您查看示例到\ app \ code \ core \ Mage \ Sales \ sql \ sales_setup \ mysql4-upgrade-1.3.99-1.4.0.0.php,您将看到:

/* @var $installer Mage_Sales_Model_Entity_Setup */
$installer = $this;
$installer->startSetup();

/* Include code from mysql4-upgrade-0.9.38-0.9.39.php */
$installer->getConnection()->addColumn($installer->getTable('sales_flat_quote_item'),
    'store_id', 'smallint(5) unsigned default null AFTER `product_id`');

当然你应该删除缓存,将config.xml中的模块版本更改为比core_resource表中的模块更大的数字。