Загрузка нескольких объектов завершена из базы данных - PullRequest
4 голосов
/ 31 января 2012

У меня есть несколько тысяч динамических идентификаторов ... скажем, продуктов.Теперь я хочу загрузить эти продукты без отправки более тысячи запросов в БД.Так что это не решение:

$products = array();
foreach( $ids as $id ){
 $products[] = Mage::getModel('catalog/product')->load($id);
}

Но поскольку мне нужны продукты complete , это также не решение:

$products = Mage::getModel('catalog/product')->getCollection();
$products->addFieldToFilter( 'entity_id', array( 'in', $ids ) );

Так что ... делайтеЯ действительно должен load каждый отдельный продукт, что, вероятно, вызовет более 3000 запросов и займет пару минут?

1 Ответ

2 голосов
/ 31 января 2012

Вы должны сделать что-то вроде:

$products = Mage::getModel('catalog/product')->getCollection();
foreach (<product attributes> as <attribute code>) {
    $products->addAttributeToSelect(<attribute code>);
}

и после этого

$products->addFieldToFilter( 'entity_id', array( 'in', $ids ) );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...