Lấy một hình ảnh thuộc tính tùy chỉnh


8

Magento 2 câu hỏi ở đây:

Tôi đã tạo một thuộc tính tùy chỉnh (loại phương tiện) với tên 'bike_range_image', và đã thử googling và tìm kiếm trong lõi và mọi thứ tôi có thể để có được hình ảnh với kích thước tùy chỉnh và như vậy, nhưng không thể tìm thấy cách tiếp cận phù hợp .

Tôi có thể lấy nó dưới dạng văn bản, nhưng rõ ràng điều đó là không đủ, vì vậy điều này sẽ không cắt nó:

$productImage = $product->getCustomAttribute( 'bike_range_image' );

Bây giờ, một số ví dụ trong các chủ đề ngoài đó đề nghị tôi làm điều này:

$this->helper('Magento\Catalog\Helper\Image')->init($product, 'bike_range_image');

Nhưng điều này mang lại cho tôi một đối tượng Magento \ Catalog \ Helper \ Image khổng lồ dường như không có dữ liệu phù hợp. (Tôi đã có sản phẩm phù hợp nếu bạn đang tự hỏi).

Có ai có một số gợi ý cho tôi?

Câu trả lời:


18

Tôi đoán bạn muốn làm điều đó trong tập tin .phtml. Hãy thử cách này

<?php
$productImageAttr = $product->getCustomAttribute( 'bike_range_image' );
$productImage = $this->helper('Magento\Catalog\Helper\Image')
    ->init($product, 'bike_range_image')
    ->setImageFile($productImageAttr->getValue());
?>

và sau đó trong thẻ img

<img src="<?php echo $productImage->getUrl() ?>" alt="<?php echo $block->escapeHtml($product->getTitle()) ?>" />

Kích thước hình ảnh có thể được xác định trong tệp xml, ví dụ: view.xml

<media>
    <images module="Magento_Catalog">
        <image id="bike_range_image" type="thumbnail">
            <width>100</width>
            <height>100</height>
        </image>
    </images>
</media>

Cách đây một thời gian, nhưng đúng vậy, cuối cùng đã làm nó như thế này. Tôi chưa thể bỏ phiếu cho nó, vì vậy xin vui lòng người khác làm điều đó!
TommyK

1
$product->getCustomAttribute('bike_range_image')là NULL trong các trang danh mục danh mục khi $productđược tải từ$block->getLoadedProductCollection()
LucScu

2

Sử dụng mã sau đây:

$value = $_product->getCustomImage();
if(isset($value) && $value != 'no_selection'):
     $imageUrl = Mage::getHelper('catalog/image')->init($_product,'custom_image');
      echo "<img src='".$imageUrl."' />";
endif;

Đó là mã Magento 1, nhưng tôi vẫn quản lý để có được nó như thế: $value = $product->getBikeRangeImage(); Tuy nhiên, điều này vẫn chưa hoạt động: $value = $product->getBikeRangeImage(); if( isset($value) && $value != 'no_selection' ): echo $this->helper( 'Magento\Catalog\Helper\Image' )->init( $product, 'bike_range_image' )->resize( 310 ); endif; Điều đó cho tôi một lỗi nói rằng nó trả về một đối tượng chứ không phải là một url như bình thường. Bất kỳ ý tưởng?
TommyK

bất cứ ai có thể làm sáng tỏ làm thế nào tôi có thể gọi một hình ảnh cho một thuộc tính thả xuống? Cảm ơn bạn
roger

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.