Magento2 has an object-oriented way to utilize data from Database
.
That models and collections
Step 1
create a model
<?php
namespace <CompanyName>\<ModuleName>\Model;
use Magento\Framework\Model\AbstractModel;
class Data extends AbstractModel
{
protected function _construct()
{
$this->_init('<CompanyName>\<ModuleName>\Model\ResourceModel\Data');
}
}
Step 2 Creat Resource model
<?php
namespace <CompanyName>\<ModuleName>\Model\ResourceModel;
use \Magento\Framework\Model\ResourceModel\Db\AbstractDb;
class Data extends AbstractDb
{
protected function _construct()
{
$this->_init('TableName', 'id'); //id is a primary key
}
}
Step 3 Create Collection
namespace <CompanyName>\<ModuleName>\Model\ResourceModel\Data;
use Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection;
class Collection extends AbstractCollection
{
protected function _construct()
{
$this->_init(
'<CompanyName>\<ModuleName>\Model\Data',
'<CompanyName>\<ModuleName>\Model\ResourceModel\Data'
);
}
}
Step 4 then we can simply use this collection in our block file
namespace <CompanyName>\<ModuleName>\Block;
use Magento\Framework\View\Element\Template\Context;
use <CompanyName>\<ModuleName>\Model\Data;
use Magento\Framework\View\Element\Template;
class Hello extends Template
{
public function __construct(Context $context, Data $model)
{
$this->model = $model;
parent::__construct($context);
}
public function getDatas()
{
$Datas = $this->model->getCollection();
return $Datas;
}
}