Today I will share with you that How you can get all the options of a custom attribute by the attribute code in Magento 2.
First of all, you need to create an instance of EavConfig. I have shared the code that I used in a controller file, but you can use it in Helper or block according to your need.
<?php namespace Companyname\Modulename\Controller\Product; use Magento\Framework\App\Action\Context; class Control extends \Magento\Framework\App\Action\Action { protected $eavConfig; public function __construct( Context $context, \Magento\Eav\Model\Config $eavConfig ) { $this->_eavConfig = $eavConfig; parent::__construct($context); } }
after that, write the function to get the all the options of the attribute,
public function execute() { $attributeCode = "attribute_code"; $attribute = $this->_eavConfig->getAttribute('catalog_product', $attributeCode); $options = $attribute->getSource()->getAllOptions(); $arr = []; foreach ($options as $option) { if ($option['value'] > 0) { $arr[] = $option; } } }
$arr now contains all the options as you can see below. The “value” is the option id and “label” is the frontend label of the option.
Array ( [0] => Array ( [value] => 280 [label] => option1 ) [1] => Array ( [value] => 281 [label] => option2 ) [2] => Array ( [value] => 282 [label] => option3 ) [3] => Array ( [value] => 283 [label] => option4 ) )
You can use this wherever you need to display options of a custom attribute. I have used this on Magento version 2.2.1 but this will work for other versions as well.
For any queries, you can comment below.
Be the first to comment.