各属性値に画像見本を使用する製品属性を作成しました。
私の質問は、製品ビュー内の属性から画像見本のURLを取得するにはどうすればよいですか?
私は属性値を取得する方法に精通していますが、画像見本を取得する方法を理解できないようです。
どんな助けでも素晴らしいでしょう。
各属性値に画像見本を使用する製品属性を作成しました。
私の質問は、製品ビュー内の属性から画像見本のURLを取得するにはどうすればよいですか?
私は属性値を取得する方法に精通していますが、画像見本を取得する方法を理解できないようです。
どんな助けでも素晴らしいでしょう。
回答:
その値を取得するには、ブロックまたはビューモデルの次のものが必要です(https://www.yireo.com/blog/1856-viewmodels-in-magento-2)
...
use Magento\Catalog\Helper\Data as CatalogData;
use Magento\Swatches\Helper\Data;
use Magento\Swatches\Helper\Media;
...
/**
* @var Data
*/
private $swatchesHelper;
/**
* @var Media
*/
private $swatchesHelperMedia;
/**
* @var CatalogData
*/
private $catalogHelperData;
...
/**
* @return string|null
*/
public function getSwatchImage()
{
$product = $this->catalogHelperData->getProduct(); //This depends of as you want do it,but you can do it on this way
if ($product->getSwatchAttribute()) {
$image = $this->swatchesHelper->getSwatchesByOptionsId([$product->getSwatchAttribute()]);
if (current($image)['value']) {
return $this->swatchesHelperMedia->getSwatchAttributeImage('swatch_thumb', current($image)['value']);
}
}
return null;
}
swatch_attributeは属性コードです。