Qual é a melhor maneira de verificar se existe um atributo personalizado no Magento2

9

Ao tomar cuidado, desejo verificar se meu atributo personalizado existe antes de tentar utilizá-lo de alguma forma. Preciso verificar em relação a toda a coleção de atributos, não apenas à coleção de produtos. Meu atributo pode existir em um cliente, um produto ou em um modelo personalizado de minha própria criação.

No magento 1.x, eu usaria o seguinte:

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

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

Não consigo encontrar nada que faça explicitamente algo assim

CarComp
fonte
Tente isso, pode ser ajudá-lo webmull.com/…
Magento 2

Respostas:

9

Você precisa usar o \Magento\Eav\Api\AttributeRepositoryInterface::getmétodo para isso.

Por exemplo:

try {

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

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

    //  attribute does not exist

}
KAndy
fonte
Olá Kandy, como verificar o atributo personalizado atribuído ou não ao produto?
Nagaraju K 10/10