How to create Resource Model in Magento 2
Resource model can be used for interaction with database and can be used for easily load the table and saving the data into table.
3 Files are most responsible for the Resource Model.
1) File should be at app/code/Magesan/Extension/Model/Extension.php
<?php
namespace Magesan\Extension\Model;
use Magento\Framework\Model\AbstractModel;
use Magesan\Extension\Model\ResourceModel\Extension as ExtensionResourceModel;
class Extension extends AbstractModel
{
/**
* @inheritDoc
*/
protected function _construct()
{
$this->_init(ExtensionResourceModel::class);
}
}
2) File should be at app/code/Magesan/Extension/Model/ResourceModel/Extension.php
<?php
namespace Magesan\Extension\Model\ResourceModel;
use Magento\Framework\Model\ResourceModel\Db\AbstractDb;
class Extension extends AbstractDb
{
const MAGESAN_DB_TABLE = "magesan_db_table";
const ID = "id";
/**
* @inheritDoc
*/
protected function _construct()
{
$this->_init(self::MAGESAN_DB_TABLE, self::ID);
}
}
3) File should be at app/code/Magesan/Extension/Model/ResourceModel/Extension/Collection.php
<?php
namespace Magesan\Extension\Model\ResourceModel\Extension;
use Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection;
use Magesan\Extension\Model\Extension;
use Magesan\Extension\Model\ResourceModel\Extension as ResourceModelExtension;
class Collection extends AbstractCollection
{
/**
* @inheritDoc
*/
protected function _construct()
{
$this->_init(Extension::class, ResourceModelExtension::class);
}
}