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.