Webkul
Services
Technologies Bagisto QloApps
iOS Android SAP BigCommerce Wix
Trusted by
Samsung Intel Toyota Walmart Disney Nokia Nestlé Decathlon
See all customers
Back to Top
DEV

How to get all the options of a custom attribute in magento 2

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.

. . .

Leave a Comment

Your email address will not be published. Required fields are marked*


Be the first to comment.

Back to Top

Message Sent!

If you have more details or questions, you can reply to the received confirmation email.

Back to Home