Какой лучший способ проверить, существует ли пользовательский атрибут в Magento2

9

Будучи осторожным, я хочу проверить, существует ли мой пользовательский атрибут, прежде чем я попытаюсь использовать его каким-либо образом. Мне нужно проверить все атрибуты коллекции, а не только коллекцию продуктов. Мой атрибут может существовать в клиенте, продукте или в пользовательской модели моего собственного создания.

В magento 1.x я бы использовал следующее:

$attr = Mage::getResourceModel('eav/entity_attribute_collection')->setCodeFilter('specialty')->getFirstItem();

if ($attr->getAttributeId() > 0) {
 Do some stuff....'

Я не могу найти ничего, что явно делает что-то подобное

CarComp
источник
Попробуйте это, может быть, вам поможет webmull.com/…
Magento 2

Ответы:

9

Вам нужно использовать \Magento\Eav\Api\AttributeRepositoryInterface::getметод для этого.

Например:

try {

   $attribute = $this->attributeRepository->get($entityType, $attributeCode);

} catch (\Magento\Framework\Exception\NoSuchEntityException $e) {

    //  attribute does not exist

}
Канди
источник
Привет, Канди, как проверить пользовательский атрибут, назначенный или нет для продукта?
Нагаражу К