2016-04-24 8 views
1

В Magento 1 Я всегда использовалПолучить все изображения продукта в Magento 2 на странице списка товаров

$_product->getMediaGallery('images') 

Но в источнике от Magento 2 Я вижу

$productImage = $block->getImage($_product, $image); 
echo $productImage->toHtml(); 

Это только получение первого Изображение продукта. Как получить второе или третье изображение (а не только базовое)?

Функция GetMediaGallery не существует?

ответ

0

Шаг 1: открытая list.phtml из вашей темы \ Magento_Catalog \ Шаблоны \ продукта

$objectManager = \Magento\Framework\App\ObjectManager::getInstance(); 

$ _imagehelper = $ this-> помощник ('Magento \ Каталог \ Helper \ Image');

Добавить выше в файле PHTML

добавьте ниже код в цикле продукта, где вы хотите галерею изображений

<div class="left-carousel"> 

        <div class="product-small-thumbs"> 
        <?php $product = $objectManager->create('Magento\Catalog\Model\Product')->load($_product->getId()); 


          $images = $product->getMediaGalleryImages(); 
          if($images->count()>0){?> 
          <div class="carousel carousel-<?php $_product->getId()?>"> 


         <?php 
          $i = 0; 
          foreach($images as $child){ 
          $i++; 
          $productImage = $_imagehelper->init($product, 'product_page_image_large') 
           ->setImageFile($child->getFile())->constrainOnly(FALSE)->keepAspectRatio(TRUE)->keepFrame(TRUE)->resize(81,53) 
           ->getUrl(); 

          $productImagedata = $_imagehelper->init($product, 'product_page_image_large') 
          ->setImageFile($child->getFile())->constrainOnly(FALSE)->keepAspectRatio(TRUE)->keepFrame(TRUE)->resize(285,240) 
          ->getUrl(); 
          if($i==1) continue; 

          ?> 
          <div class="slide"> 
          <img data-id="smallthumbs-<?php echo $_product->getId();?>" data-img="<?php echo $productImagedata; ?>" src="<?php echo $productImage; ?>"/> 
          </div> 

          <?php 

          } 
          ?> 
          </div> 

          <?php 
          } 
        ?> 
        </div> 
       </div>