No Magento 1 eu sempre usei
$_product->getMediaGallery('images')
Mas na fonte do Magento 2 eu vejo
$productImage = $block->getImage($_product, $image);
echo $productImage->toHtml();
Está apenas obtendo a primeira imagem do produto. Como obtenho a segunda ou terceira imagem (não apenas a base)?
A função GetMediaGallery não existe?
Atualização: $ _product-> getMediaGalleryImages () lança NULL em um var_dump
e
para getMediaGallery e getMediaGalleryEntries, recebo o mesmo erro de aviso:
Undefined property: Magento\Catalog\Model\Product\Interceptor::$getMediaGallery
\Magento\Catalog\Model\Product::getMediaGalleryImages()
Respostas:
O carregamento da categoria mudou em 2.1, portanto, isso só pode ser relevante a partir de 2.1:
A galeria de imagens é adicionada ao produto por meio de uma interface de extensão definida por di.xml. O resultado é que podemos criar manualmente uma instância da classe ReadHandler da galeria e transmitir um produto para carregar todas as suas imagens da galeria.
Como de costume no Magento 2, a melhor maneira de instanciar uma classe é através do método __construct (), então aqui está uma classe de bloco de stub:
No seu modelo, supondo que você tenha $ product carregado por meio de uma coleção de produtos, você poderá chamar:
fonte
Use o código abaixo para obter todas as imagens da galeria na página da lista de produtos:
fonte
crie ajudante, por exemplo:
chame e use dentro de sua list.phtml: $ _helperGallery = $ this-> helper ('Ibnab \ Common \ Helper \ Data'); agora você pode usar o produto chamado atual dentro de cada um (com sua técnica):
a fonte completa, é claro
fonte
Existe uma função disponível no magento
Magento\Catalog\Model\ResourceModel\Product\Collection::addMediaGalleryData()
que adiciona imagens da galeria de mídia à sua coleção de produtos.Basta usá-lo em sua coleção como,
E você poderá obter imagens da galeria de mídia usando
fonte
Você pode usar exatamente o mesmo método que o Magento 1:
Além disso, o Magento 2 fornece um novo método para obter a galeria de mídia como uma matriz:
fonte
retorna uma matriz com as imagens da galeria
fonte
fonte