TL; DR : ¿Cómo cargo las imágenes / galería del producto sin cargar todo el producto?
Quiero cargar las imágenes en un producto. Lo que hago en el .phtml
$_popularCollection = $this->getPopularCollection();
foreach ($_popularCollection as $_product):
// the rest
$mediaGallery = $_product->getMediaGalleryImages();
endforeach;
//the rest
Lo que hago en la clase 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;
}
Esto funciona Pero lo cargo todo: $_popularCollection->addAttributeToSelect(*);
Lo intenté $_popularCollection->addAttributeToSelect('media_gallery');
pero no parece funcionar.
La respuesta aceptada funciona, pero implica cargar todos los atributos del producto en la memoria cuando tal vez sean innecesarios.
Para adoptar un enfoque un poco más quirúrgico (probado en 1.9.2.2 CE) hacer
De esta manera, solo carga el atributo media_gallery en sí.
fuente
Sé que la pregunta es antigua y que ya tiene una respuesta correcta, pero no está mal recomendar otro método que pueda ser útil para la comunidad: antes
$_product->getMediaGalleryImages()
Puedes probar:
Tomado de: /programming/7890616/get-product-media-gallery-images-from-a-product-collection-in-magento#23804663
fuente