как получить URL-адрес основного изображения продукта в файле phtml?


Я хочу получить URL-адрес изображения продукта, отображаемого на странице описания продукта в файле phtml. какая-нибудь помощь?

Author: Learner, 2018-01-18

3 answers

Попробуйте это

$product = $block->getProduct();

$imageUrl = $this->helper('Magento\Catalog\Helper\Image')
                    ->init($product, 'product_base_image')
                    ->constrainOnly(true)
                    ->keepAspectRatio(true)
                    ->keepTransparency(true)
                    ->keepFrame(false)
                    ->resize(150, 150)->getUrl();
 14
Author: Dinesh Yadav, 2020-06-14 12:50:10
use Magento\Catalog\Helper\Image;

/**
         * Catalog Image Helper
         *
         * @var Image
         */
        protected $imageHelper;
public function __construct(
        Image $imageHelper
    ) {
        $this->imageHelper = $imageHelper;
    }

private function getAllSizeImages(ModelProduct $product, $imageFile)
    {
        return [
            'large' => $this->imageHelper->init($product, 'product_page_image_large_no_frame')
                ->setImageFile($imageFile)
                ->getUrl(),
            'medium' => $this->imageHelper->init($product, 'product_page_image_medium_no_frame')
                ->setImageFile($imageFile)
                ->getUrl(),
            'small' => $this->imageHelper->init($product, 'product_page_image_small')
                ->setImageFile($imageFile)
                ->getUrl(),
        ];
    }
 3
Author: Birjitsinh Zala, 2018-01-18 10:37:12

Это сработало для меня

// Step 1:  In your custom or block class add a variable  $_image
protected $_image;

//  Step 2: Injecting a class ( Magento\Catalog\Helper\Image ) into constructor
public function __construct(
    Magento\Catalog\Helper\Image $_image
) {
    $this->_image = $_image;
}

//  Step 3: Create a custom function
public function getProductImageUrl($product)
{
    return $this->_image->init($product, 'product_base_image')->constrainOnly(FALSE)
        ->keepAspectRatio(TRUE)
        ->keepFrame(FALSE)
        ->getUrl();
} 

И, наконец, в вашем соответствующем пользовательском phtml вызовите метод getProductImageUrl в этом передайте соответствующий объект $poduct.

 3
Author: Asheem Patro, 2018-10-09 10:15:23