我向sales_flat_quote_item添加了两个文本列,以便存储数据和其他原因当我将产品添加到购物车时。我的问题是我无法保存数据。我尝试了很多例子但没有任何成功。 在这里我添加了coulmns:
$installer = $this;
$connection = $installer->getConnection();
$installer->startSetup();
$installer->getConnection()
->addColumn($installer->getTable('sales/quote_item'),
'pack_name',
array(
'type' => Varien_Db_Ddl_Table::TYPE_TEXT,
'nullable' => true,
'default' => null,
'comment' => 'pack_name'
)
);
$installer->endSetup()
这是我的观察者中的代码,我尝试保存数据:
$quote_item = Mage::getModel('sales/quote_item')->load($quote->Id);
$quote_item->setPackName($string);
$quote_item->save();
任何帮助?
答案 0 :(得分:0)
不建议像这样向平面表添加列。魔术方法不起作用,因为您对架构的更新违反了Magento最佳实践。如果您只想快速修复,可以使用原始SQL查询:
<?php
$transaction = Mage::getSingleton('core/resource')->getConnection('core_write');
try {
$transaction->beginTransaction();
$query_string = "UPDATE sales_flat_quote_item
SET pack_name='packname'
WHERE id='id'";
$transaction->query($query_string);
$transaction->commit();
}
catch (Exception $e) {
$transaction->rollBack();
}
但要小心,它不安全。确保您的数据已经过清理。