我不知道我是否正确。我需要加载产品,更改一些值并保存。我的问题是哪种方式适合这样做。目前我正在使用这种方式:
$id = Mage::getModel('catalog/product')->getIdBySku($sku);
$product = Mage::getModel('catalog/product')->load($id);
1)一般来说,即使使用40K产品也能正常工作。但是我读到这种方式导致内存泄漏?同样对于该解决方案,我读到如果我禁用reindex功能,我可以改善处理时间。
2)如果我使用其他方式并将其作为集合加载,然后应用一些过滤器,请addFieldToFilter('sku',$the_product_i_want)
会更好吗?
当我说得更好时,我的意思是:1)magento方式,2)时间效率3)不做我不需要做的事情。
答案 0 :(得分:3)
每次调用以下代码片段Mage::getModel('catalog/product')
时,Magento都会在内存中创建一个新的模型对象。这将导致内存泄漏。你可以这样做。
$model = Mage::getModel('catalog/product');
$id = $model->getIdBySku($sku);
$product = $model->load($id);
同时if you have the product object
您可以使用以下代码。
$collection = Mage::getModel('catalog/product')->getCollection();
$product = $collection->addFieldToFilter('sku',$the_product_i_want);