magento在自定义列中存储数据

时间:2014-07-09 22:04:28

标签: magento

我向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();

任何帮助?

1 个答案:

答案 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();
}

但要小心,它不安全。确保您的数据已经过清理。