TL; DR : Como carrego as imagens / galeria do produto sem carregar o produto inteiro?
Quero carregar as imagens em um produto. O que faço no .phtml
$_popularCollection = $this->getPopularCollection();
foreach ($_popularCollection as $_product):
// the rest
$mediaGallery = $_product->getMediaGalleryImages();
endforeach;
//the rest
O que faço na classe 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;
}
Isso funciona, mas eu carrego tudo: $_popularCollection->addAttributeToSelect(*);
Eu tentei, $_popularCollection->addAttributeToSelect('media_gallery');
mas não parece funcionar.
A resposta aceita funciona, mas envolve carregar todos os atributos do produto na memória quando talvez eles sejam desnecessários.
Para adotar uma abordagem um pouco mais cirúrgica (testada em 1.9.2.2 CE),
Dessa forma, você carrega apenas o próprio atributo media_gallery.
fonte
Sei que a pergunta é antiga e que ela já tem uma resposta correta, mas não é ruim recomendar outro método que possa ser útil à comunidade: Antes
$_product->getMediaGalleryImages()
Podes tentar:
Retirado de: /programming/7890616/get-product-media-gallery-images-from-a-product-collection-in-magento#23804663
fonte