我有几千个动态ID ..让我们说产品.
现在我想加载这些产品而不向数据库发送超过一千个查询.
所以这不是一个解决方案:
$products = array();
foreach( $ids as $id ){
$products[] = Mage::getModel('catalog/product')->load($id);
}
但是因为我需要完整的产品,这也不是解决方案:
$products = Mage::getModel('catalog/product')->getCollection();
$products->addFieldToFilter( 'entity_id', array( 'in', $ids ) );
那么..我真的需要加载每个单独的产品,这可能导致超过3000个查询并花费几分钟?
最佳答案 你应该做的事情如下:
$products = Mage::getModel('catalog/product')->getCollection();
foreach (<product attributes> as <attribute code>) {
$products->addAttributeToSelect(<attribute code>);
}
然后呢
$products->addFieldToFilter( 'entity_id', array( 'in', $ids ) );