TL; DR : Как загрузить изображения / галерею продукта без загрузки всего продукта?
Я хочу загрузить изображения на товар. Что я делаю в .phtml
$_popularCollection = $this->getPopularCollection();
foreach ($_popularCollection as $_product):
// the rest
$mediaGallery = $_product->getMediaGalleryImages();
endforeach;
//the rest
Что я делаю в классе Block:
public function getPopularCollection() {
// http://magento.stackexchange.com/q/5838/3089
// no category
if ( is_null( $this->getCategoryId() ) )
return false;
/** @var Mage_Catalog_Model_Category $category */
$category = Mage::getModel('catalog/category')->load( (int)$this->getCategoryId() );
/** @var Mage_Catalog_Model_Resource_Product_Collection $_popularCollection */
$_popularCollection = Mage::getModel('catalog/product')->getResourceCollection();
$_popularCollection->addAttributeToSelect('*');
$_popularCollection->setStoreId(Mage::app()->getStore()->getId());
$_popularCollection->addCategoryFilter($category);
return $_popularCollection;
}
Это работает, но я загружаю все: $_popularCollection->addAttributeToSelect(*);
Я пытался, $_popularCollection->addAttributeToSelect('media_gallery');
но это не похоже на работу.
Принятый ответ работает, но включает загрузку всех атрибутов продукта в память, когда, возможно, они не нужны.
Для более хирургического подхода (проверено в 1.9.2.2 CE) сделайте
Таким образом, вы загружаете только сам атрибут media_gallery.
источник
Я знаю, что вопрос старый и на него уже есть правильный ответ, но неплохо бы рекомендовать другой метод, который может быть полезен для сообщества:
$_product->getMediaGalleryImages()
Можешь попробовать:
Взято из: /programming/7890616/get-product-media-gallery-images-from-a-product-collection-in-magento#23804663
источник