How to create Resource Model in Magento 2 - Magesan

How to create Resource Model in Magento 2

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);
    }
}

Leave a Reply

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

*
*
You may use these <abbr title="HyperText Markup Language">HTML</abbr> tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>