Domanda

I want to show all the category on the left sidebar on home page. Please let me know how to get all the categories by collection, or there is another way to call all the category. please let me know

È stato utile?

Soluzione

Here is open source extension for do that - you can use code and modify for your needs Magento 2 Frontend : How to call category collection on home page Explained in blog post

Altri suggerimenti

<?php 
  $categoryHelper = $this->helper('Magento\Catalog\Helper\Category');
  foreach($categoryHelper->getStoreCategories() as $category): 
?>
  <li><a href="<?php echo $categoryHelper->getCategoryUrl($category) ?>"><?php echo $category->getName() ?></a></li>
<?php endforeach; ?>

Check below code:

<?php
$objectManagerr = \Magento\Framework\App\ObjectManager::getInstance();
                    $categoryFactory = $objectManagerr->create('Magento\Catalog\Model\ResourceModel\Category\CollectionFactory');

                    $categories = $categoryFactory->create()                              
                                ->addAttributeToSelect('*');

foreach ($categories as $category):     
echo $category->getName();
endforeach;
?>

You need to use DI in your class - 1. add property of AdminSession class to class 2. add including of the variable using dependensy injection:

/**
 * @var \Magento\Store\Model\StoreManagerInterface
 */

protected $_storeManager;

public function __construct(
    \Magento\Store\Model\StoreManagerInterface  $_storeManager
){
    $this->_storeManager = $_storeManager;
}
$store = 1;//store id
public function getCategories($store){
    $rootCategoryId = $this->_storeManager->getStore($store)
        ->getRootCategoryId();
    $collection = $this->_categoryCollectionFactory->create();
    $collection->addAttributeToSelect('name','id')
        ->addIsActiveFilter(true)
        ->addAttributeToFilter('path', array('like' => "1/{$rootCategoryId}/%"))
        ->addLevelFilter(2);

    foreach ($collection as $category) {
        $categories[] = array(
            'id'=>$category->getId(),
            'name'=>$category->getName(),
        ); 
    }
    return $categories;
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a magento.stackexchange
scroll top