在本主题中,我们将讨论Magento 2中的创建资源模型。在上一个主题中,我们讨论了CRUD和模型。如您所知,模型文件包含整体数据库逻辑,它不执行sql查询。资源模型将这样做。现在我们将为此表创建资源模型: Mageplaza\HelloWorld\Model\ResourceModel\Topic
资源模型
此文件的内容:
<?php
namespace Mageplaza\HelloWorld\Model\ResourceModel;
class Topic extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb
{
protected function _construct()
{
$this->_init('mageplaza_topic', 'topic_id');
}
}
Magento中的每个CRUD资源模型都必须扩展抽象类\Magento\Framework\Model\ResourceModel\Db\AbstractDb
,其中包含从数据库中获取信息的函数。
与模型类一样,此资源模型类将具有必需的方法_construct()
。此方法将调用_init()
函数来定义该表的表名和主键。在这个例子中,我们有表'mageplaza_topic'和主键'topic_id'。
资源模型集合 - 获取模型集合
该集合模型被认为是一个资源模型使我们能够筛选和获取集合表中的数据。收集模型将放在:
Mageplaza\HelloWorld\Model\ResourceModel\Topic\Collection.php
此文件的内容:
<?php
namespace Mageplaza\HelloWorld\Model\ResourceModel\Topic;
class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection
{
protected function _construct()
{
$this->_init('Mageplaza\HelloWorld\Model\Topic', 'Mageplaza\HelloWorld\Model\ResourceModel\Topic');
}
}
CRUD集合类必须从函数中扩展\Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection
并调用_init()
方法来初始化模型,资源模型_construct()
。