magento 2 - Как получить имя набора атрибутов в списке продуктов и на странице сведений о продукте


Ответы:


15

Мы можем использовать, \Magento\Eav\Api\AttributeSetRepositoryInterfaceчтобы получить имя набора атрибутов.

Подробная страница

Нам нужно переопределить \Magento\Catalog\Block\Product\Viewблок. Внедрить этот класс в конструктор

/** @var \Magento\Eav\Api\AttributeSetRepositoryInterface $attributeSet **/
protected $attributeSet;

public function __construct(
    ......
    \Magento\Eav\Api\AttributeSetRepositoryInterface $attributeSet
    ......
) {
   ......
   $this->attributeSet = $attributeSet;
}


//Build method to get attribute set
public function getAttributeSetName() {

    $product = $this->getProduct();
    $attributeSetRepository = $this->attributeSet->get($product->getAttributeSetId());
    return $attributeSetRepository->getAttributeSetName();
}

Теперь мы можем позвонить на странице сведений о продукте: $block->getAttributeSetName();

Страница листинга

Нам нужно переопределить \Magento\Catalog\Block\Product\ListProductблок

/** @var \Magento\Eav\Api\AttributeSetRepositoryInterface $attributeSet **/
protected $attributeSet;

public function __construct(
    ......
    \Magento\Eav\Api\AttributeSetRepositoryInterface $attributeSet
    ......
) {
   ......
   $this->attributeSet = $attributeSet;
}

public function getAttributeSetName($product) {

    $attributeSetRepository = $this->attributeSet->get($product->getAttributeSetId());
    return $attributeSetRepository->getAttributeSetName();
}

Мы можем позвонить $block->getAttributeSetName($_product).


$ attributeSet и $ product являются неопределенными переменными, я очень плохо знаком с magento2 и не могу понять, что именно мне нужно написать
Абхишек Дханрадж Шахдео

Вы можете увидеть мой обновленный ответ. Достаточно для вас?
Khoa TruongDinh

Я пытаюсь реализовать его в блоке списка продуктов, но он работает не совсем точно, вносит некоторые изменения
Абхишек Дханрадж Шахдео,

Я получаю сообщение об ошибке, объект должен быть создан
Абхишек Дханрадж Шахдео

Вы можете обновить свой ответ с текущей проблемой, следуя моему ответу.
Khoa TruongDinh
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.