I have created a new category attribute using a setup script and now it is showing on the backend and assigned values (it is just a boolean attribute). the attribute name on EAV entity table is
is_home_category
.And now I'm trying to get its values on frontend
$categories = $this->getStoreCategories(true, true, true); foreach ($categories as $category): echo $category->getIsHomeCategory() endforeach;
But it only returns NULL , how can I get my custom category attribute on the frontend
Solved! Go to Solution.
Instantiate a category collection manually and call its addAttributeToSelect method.
thank you very much I have inject
\Magento\Catalog\Model\ResourceModel\Category\CollectionFactory $categoryCollection
and able to load category collection with
public function getCategoryCollection() { $collection = $this->_categoryCollection->create() ->addAttributeToFilter('is_home_category', '1'); return $collection; }
and Now I can call
getIsHomeCategory()
method but I can not get category name by getName() do you know how to get category name ?
my bad it should be
public function getCategoryCollection() { $collection = $this->_categoryCollection->create() ->addAttributeToSelect('*') ->addAttributeToFilter('is_home_category', '1'); return $collection; }
and thanks again