Displaying Database Table Values in Magento 2 Frontend – Guide

magento-2.0.7magento-2.1magento2-dev-beta

In Magento 1.9 i used this code to get the database table values.

$model = Mage::getModel('task_creation/details');

   $collections = $model->getCollection();

foreach($collections as $collection)
{
  print_r($collection->getdata(''));
}

Now I am using Magento 2.1, what's the code I need to use for it. I am new to Magento 2.

Best Answer

For that you first create the Model So in my case Module name is News

app/code/FME/News/Model/News.php

<?php
namespace FME\News\Model;

class News extends \Magento\Framework\Model\AbstractModel implements NewsInterface, \Magento\Framework\DataObject\IdentityInterface
{
    const CACHE_TAG = 'id';
    const ENABLED = 1;
    const DISABLED = 0;
    const COMPLETE = 0;
    const LEFT = 1;
    const RIGHT = 2;


    protected function _construct()
    {
        $this->_init('FME\News\Model\ResourceModel\News');
    }

    public function getIdentities()
    {
        return [self::CACHE_TAG . '_' . $this->getId()];
    }



}

Then create interface for model app/code/FME/News/Model/NewsInterface.php

<?php
namespace FME\News\Model;
interface NewsInterface 
{

}

then create resource model

app/code/FME/News/Model/ResourceModel/News.php

 <?php
namespace FME\News\Model\ResourceModel;

class News extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb
{
    protected function _construct()
    {
        $this->_init('fme_news','id');
    }

}

Then create collection app/code/FME/News/Model/ResourceModel/News/Collection.php

<?php
namespace FME\News\Model\ResourceModel\News;
class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection
{
    protected $_idFieldName = 'id';
    protected function _construct()
    {
        $this->_init('FME\News\Model\News','FME\News\Model\ResourceModel\News');
    }
}

Now get the collection

protected $newscollectionFactory;
    public function __construct(....
\FME\News\Model\ResourceModel\News\CollectionFactory $newscollectionFactory
    ....)
    {
        ....
        $this->newscollectionFactory = $newscollectionFactory;
            .....
    }
    public function getNews()
    {


        $newsCollection = $this->newscollectionFactory->create();
        return $newsCollection;
    }