カスタム属性画像を取得する


8

ここにMagento 2の質問:

「bike_range_image」という名前のカスタム属性(メディアタイプ)を作成し、コアでグーグル検索を行い、カスタムサイズなどで画像を取得するためにできることはすべて試しましたが、適切なアプローチを見つけることができません。

私はそれをテキストとして得ることができますが、明らかにそれだけでは不十分なので、これはそれをカットしません:

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

さて、そこにあるテーマのいくつかの例は私がこれを行うことを示唆しています:

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

しかし、これにより、適切なデータがないように見える巨大なMagento \ Catalog \ Helper \ Imageオブジェクトができます。(あなたが疑問に思っているなら、私は適切な製品を持っています)。

誰か私にいくつかの指針がありますか?

回答:


18

あなたはそれを.phtmlファイルでやりたいと思います。この方法を試してください

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

そしてimgタグで

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

画像サイズは、view.xmlなどのxmlファイルで定義できます。

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

少し前のことですが、そうです。まだ投票できませんので、誰か他の人に投票してください!
TommyK 2016

1
$product->getCustomAttribute('bike_range_image')$product読み込まれると、カタログカテゴリページでNULLになります$block->getLoadedProductCollection()
LucScu

2

次のコードを使用します。

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

これはMagento 1のコードですが、なんとかそのようにして取得できました。 $value = $product->getBikeRangeImage(); ただし、これはまだ機能していません $value = $product->getBikeRangeImage(); if( isset($value) && $value != 'no_selection' ): echo $this->helper( 'Magento\Catalog\Helper\Image' )->init( $product, 'bike_range_image' )->resize( 310 ); endif; 。URLではなくオブジェクトが返されるというエラーが表示されます。何か案が?
TommyK 2016年

ドロップダウン属性の画像を呼び出す方法を誰かに明かすことはできますか?ありがとう
ロジャー

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.