En Magento 1 siempre he usado
$_product->getMediaGallery('images')
Pero en la fuente de Magento 2 veo
$productImage = $block->getImage($_product, $image);
echo $productImage->toHtml();
Solo está obteniendo la primera imagen del producto. ¿Cómo obtengo la segunda o tercera imagen (no solo la base)?
La función GetMediaGallery no existe?
Actualización: $ _product-> getMediaGalleryImages () arroja NULL en un var_dump
y
para getMediaGallery y getMediaGalleryEntries obtengo el mismo error de aviso:
Undefined property: Magento\Catalog\Model\Product\Interceptor::$getMediaGallery
\Magento\Catalog\Model\Product::getMediaGalleryImages()
Respuestas:
La carga de categoría ha cambiado en 2.1, por lo que esto solo puede ser relevante a partir de 2.1 en adelante:
La galería de imágenes se agrega al producto a través de una interfaz de extensión definida a través de di.xml. El resultado es que podemos crear manualmente una instancia de la clase ReadHandler de la galería y pasar un producto para cargar todas sus imágenes de la galería.
Como es habitual en Magento 2, la mejor manera de crear una instancia de una clase es a través del método __construct (), así que aquí hay una clase de bloque de código auxiliar:
En su plantilla, suponiendo que tenga $ product cargado a través de una colección de productos, podrá llamar a:
fuente
Use el siguiente código para obtener todas las imágenes de la galería en la página de la lista de productos:
fuente
crear ayudante por ejemplo:
llame y use dentro de su lista.phtml: $ _helperGallery = $ this-> helper ('Ibnab \ Common \ Helper \ Data'); ahora puede usar con el producto actual llamado para cada uno (con su técnica):
la fuente completa por supuesto
fuente
Hay una función disponible en magento
Magento\Catalog\Model\ResourceModel\Product\Collection::addMediaGalleryData()
que agregará imágenes de la galería multimedia a su colección de productos.Solo úsalo en tu colección como,
Y podrá obtener imágenes de la galería multimedia utilizando
fuente
Puede usar exactamente el mismo método que Magento 1:
Además, Magento 2 proporciona un nuevo método para obtener la galería de medios como una matriz:
fuente
devuelve una matriz con las imágenes de la galería
fuente
fuente