Skip to main content

Magento 2 How to get product collection using controller

Getting product collection in Magento 2

Step 1: Declare in Vendor_ModuleName Block

Step 2: Display product collection in phtml file

..

Step 1: Declare in Vendor_ModuleName Block

You will use a block class of the module Vendor_ModuleName, then possibly inject the object of `\Magento\Catalog\Model\ResourceModel\Product\CollectionFactory` in the constructor of the module’s block class.

    app/code/Vendor/ModuleName/Block/ProductCollection.php

add code this code 

<?php

    namespace Vendor\ModuleName\Block;

    class ProductCollection extends \Magento\Framework\View\Element\Template

    {    

        protected $_productCollectionFactory;

            

        public function __construct(

            \Magento\Backend\Block\Template\Context $context,        

            \Magento\Catalog\Model\ResourceModel\Product\CollectionFactory $productCollectionFactory,        

            array $data = []

        )

        {    

            $this->_productCollectionFactory = $productCollectionFactory;    

            parent::__construct($context, $data);

        }

        public function getProductCollections()

        {

            $collection = $this->_productCollectionFactory->create();

            $collection->addAttributeToSelect('*');

            $collection->setPageSize(3); // fetching only 3 products

            return $collection;

        }

    }

    ?>

You can request the number of the product collection, that is a limited or unlimited number.

Step 2: Display product collection in phtml file

Print out the product collection in phtml file with the below code:

$productCollection = $block->getProductCollections();

    foreach ($productCollection as $product) {

        print_r($product->getData());     

        echo "<br>";

    }

If that you have any queries about the article or any questions in general, use the comment section below!


Comments

Popular posts from this blog

Magento 2: How to use redirect URl in Router.php

Module name - **Aks_CustomUrlRouter** You have to create below listed files 1. Registration.php :: app/code/Aks/CustomUrlRouter/registration.php <?php \Magento\Framework\Component\ComponentRegistrar::register( \Magento\Framework\Component\ComponentRegistrar::MODULE, 'Aks_CustomUrlRouter', __DIR__ ); ?> 2. Module.xml :: app/code/Aks/CustomUrlRouter/etc/module.xml <?xml version="1.0"?> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../lib/internal/Magento/Framework/Module/etc/module.xsd"> <module name="Aks_CustomUrlRouter" setup_version="2.0.0"></module> </config> 3. di.xml :: app/code/Aks/CustomUrlRouter/etc/di.xml <?xml version="1.0"?> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">

Magento 2 get category collection using specific controllers and category level using object manager

Magento 2 get category collection using object manager <?php $objectManager = \Magento\Framework\App\ObjectManager::getInstance(); $category = $objectManager->get('Magento\Framework\Registry') ->registry('current_category'); //get current category $requestInterface = $objectManager->get('Magento\Framework\App\RequestInterface'); //echo $routeName = $requestInterface->getRouteName(); //echo $moduleName = $requestInterface->getModuleName(); $controllerName = $requestInterface->getControllerName(); //echo $actionName = $requestInterface->getActionName(); $parcatId = $category->getId(); // current Category ID $parcategory = $objectManager->create('Magento\Catalog\Model\Category') ->load($parcatId); $parent_category = $parcategory->getParentCategory(); $subcatId = $parent_category->getId(); $subcategory = $objectManager->create('Magento\Catalog\Model\Category

Magento 2 check category attribute values in database using mysql query

Magento 2 check category attribute in database using mysql quer SELECT * FROM `catalog_category_entity_text` where store_id = 1; SELECT * FROM `catalog_category_entity_datetime` where store_id = 1; SELECT * FROM `catalog_category_entity_decimal` where store_id = 1; SELECT * FROM `catalog_category_entity_int` where store_id = 1; SELECT * FROM `catalog_category_entity_varchar` where store_id = 1; Note : In above SQL query store_id 1 is ID of store. kindly you need to check store Id for all store-views in admin and run the above code for each store-views separately.