将新字段添加到sales_flat_quote_item并保存数据

时间:2013-01-08 15:14:11

标签: magento

我在表sales_flat_quote_item中创建了一个名为'wiid'的新列。当任何产品表单愿望清单添加到购物车时,我想在此字段中保存数据。所以,这是我的MageWishlist_Model_Item:

$quote_item  = Mage::getModel('sales/quote_item')->load($cart->getQuote()->getItemByProduct($product)->getId());
//I log() this $quote_item and is returning the correct object
$quote_item_id = $quote_item->getId();
//Is returning the correct quote item id  from database
$wishlist_item_id = $this->getId();
//Is returnig the correct wishlist item id 
$quote_item->setWiid($wishlist_item_id);
$quote_item->save();

问题在于上面的最后两行。它没有保存在数据库中。

2 个答案:

答案 0 :(得分:0)

每次在数据库中添加新字段时,都必须在后端刷新“缓存”。

答案 1 :(得分:0)

你必须这样做。

使用sql语句进行Direclty:

$write = Mage::getSingleton('core/resource')->getConnection('core_write');
$query = "UPDATE sales_flat_quote_item SET your_field_here = '" . $yourContent . "' where item_id = ". $itemId;
$write->query($query);

或者不是获取quote_item模型,你必须得到报价模型并迭代如下项目:

$quote = Mage::getModel('sales/quote')->load($quoteId);
$items = $quote->getAllItems();
foreach ($items as $item){
    $item->setWild("your_content_here");
    $item->save();
}