• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar
Tutsplanet

Tutsplanet

Free Technical and Blogging Resources

  • Home
  • Web Hosting
  • Programming
  • Plugins
  • Twitter Trends
  • Tools
  • About Us

PHP TagsMagento 2

How To Get The Collection Of Records From A Custom Module In Magento 2?

Sep 23, 2020 Editorial Staff Leave a Comment

Share
Tweet
Share
1 Shares

If you are working on a custom Magento 2 module, and wondering how to get the collection of records from your custom database table, this article is for you. This is very common that your Magento 2 website needs more database tables than what Magento shipped with. So in a listing page such as blog listing, you need to get the collection of records. To do this in Magento 2 way, follow the article carefully.

We need to create 3 files in order achieve the above.

1) Model , 2) ResourceModel , 3) Collection

For the sake of this example, I assume our namespace would be Mycompany, Module name would be Blog and database table would be blog.

First we create a file for the model at app/code/Mycompany/Blog/Model/Blog.php

<?php

namespace Mycompany\Blog\Model;

use Magento\Framework\Model\AbstractModel;

class Blog extends AbstractModel
{
    /**
     * Define resource model
     */
    protected function _construct()
    {
        $this->_init('Mycompany\Blog\Model\ResourceModel\Blog');
    }
}

Now create Blog.php ResourceModel at app/code/Mycompany/Blog/Model/ResourceModel/Blog.php

<?php

namespace Mycompany\Blog\Model\ResourceModel;

use Magento\Framework\Model\ResourceModel\Db\AbstractDb;

class Blog extends AbstractDb
{
    /**
     * Define main table
     */
    protected function _construct()
    {
        $this->_init('blog', 'id'); // blog is the database table
    }
}

Now create Collection.php Collection file at app/code/Mycompany/Blog/Model/ResourceModel/Blog/Collection.php

This file would be responsible for the collection of records from the database table.

<?php

namespace Mycompany\Blog\Model\ResourceModel\Blog;

use Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection;

class Collection extends AbstractCollection
{
    /**
     * Define model & resource model
     */
    protected function _construct()
    {
        $this->_init(
            'Mycompany\Blog\Model\Blog',
            'Mycompany\Blog\Model\ResourceModel\Blog'
        );
    }
}

We have finished most of the work , but yet we have to test this feature, and need to see whether our implementation is correct.

To test we will create a controller, in our module. I am not going very deep on the subject how to create a controller. You can read this tutorial for learning how to create a controller in Magento 2.

Create a controller called Index.php at app/code/Mycompany/Blog/Controller/Index/Index.php

<?php

namespace Mycompany\Blog\Controller\Index;

use Magento\Framework\App\Action\Action;
use Magento\Framework\App\Action\Context;
use Mycompany\Blog\Model\BlogFactory;

class Index extends Action
{
    protected $_blogFactory;

    public function __construct(
        Context $context, 
        BlogFactory $_blogFactory
    ) {
        parent::__construct($context);
        $this->_blogFactory = $_blogFactory;
    }

    public function execute()
    {

        $result = $this->_blogFactory->create();
        $collection = $result->getCollection(); //Get collection of blog
        //print the data
        var_dump($collection->getData());
        exit;

    }
}

That’s when you browse http://example/com/blog/index/index, you will see the print of our records from database.

Did this post help you?
Tutsplanet brings in-depth and easy tutorials to understand even for beginners. This takes a considerable amount of work. If this post helps you, please consider supporting us as a token of appreciation:
  • Just want to thank us? Buy us a Coffee
  • May be another day? Shop on Amazon using our links.
    Your prices won't change but we get a small commission.

Editorial Staff

Editorial Staff at Tutsplanet is a dedicated team to write various tutorials about subjects like Programming, Technology and Operating Systems.

View all posts by Editorial Staff

Reader Interactions

Leave a Reply Cancel reply

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Primary Sidebar

Quick Links

  • Top 21 Website Ideas To Make Money Online in 2021
  • A Simple YouTube Video Downloader Script in PHP
  • The 50 Most Useful jQuery Plugins for Frontend Development
  • Replace “\n” with new line characters, using Notepad++
  • Using Third-Party Libraries in Codeigniter
  • Upload Multiple Images and Store in Database using PHP and MySQL.
  • Hierarchical Tree view Category Example in Laravel
  • Laravel Image Intervention Tutorial With Example
  • How to import sql file in MySQL database using PHP?
  • Free VAT Calculator Online

Subscribe

* indicates required

Search Here

Share

   

Hot topics

  • Replace “\n” with new line characters, using Notepad++ 19 views
  • Add FTP/SFTP in Visual Studio Code 18 views
  • A Simple YouTube Video Downloader Script in PHP 17 views
  • Open a URL in a new tab using JavaScript 15 views
  • How to enter new line in Microsoft Teams? 13 views
  • Auto Login in PuTTY with a password 12 views
  • PHP: Implode () with quotes 10 views
  • Hierarchical Tree view Category Example in Laravel 10 views
  • Simple PHP Shopping Cart 9 views
  • Laravel: Download files to storage from SFTP 8 views

Categories

  • Design & Development
  • Drupal
  • Facebook
  • General
  • How To
  • ios
  • Javascript
  • Linux
  • Magento
  • Marketing
  • News
  • PHP
  • Plugins
  • Programming
  • Snippets List
  • Social Media
  • Softwares
  • Themes
  • Tips
  • Wordpress
  • YouTube

Copyright © 2023 · Planet on Genesis Framework · Powered By BunnyCDN . Network wallpapernoon.com