リソースモデルの作成 – Magento 2のモデルコレクションの取得

databases-in-magento2-configuration

前回のトピックでは、CRUDとモデルについて説明しました。ご存知のように、モデルファイルは全体的なデータベースロジックを含みますが、SQLクエリを実行することはありません。リソースモデルがそれを行います。それでは、このテーブルのリソースモデルを作成します。SmartOSC\HelloWorld\Model\ResourceModel\Topic

databases-in-magento2-configuration

リソースモデル

このファイルの内容:

<?php
namespace SmartOSC\HelloWorld\Model\ResourceModel;
class Topic extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb
{
	protected function _construct()
	{
		$this->_init('SmartOSC_topic', 'topic_id');
	}
}

Magento の CRUD リソースモデルは、データベースから情報を取得するための関数を含む抽象クラス\Magento\Framework\Model\ResourceModel\Db\AbstractDb) を継承する必要があります。

モデルクラスと同様に、リソースモデルクラスにも必須のメソッド_construct()があります。この方法は、_init()関数を呼び出して、テーブル名と主キーを定義します。この例では、テーブル’SmartOSC_topic’と主キー’topic_id’を定義します。

リソースモデルコレクション – モデルコレクションの取得

コレクションモデルは、コレクションテーブルのデータをフィルタリングして取得することができるリソースモデルと考えられます。コレクションモデルは以下の場所に置かれます。

SmartOSC\HelloWorld\Model\ResourceModel\Topic\Collection.php

このファイルの内容で:

<?php
namespace SmartOSC\HelloWorld\Model\ResourceModel\Topic;
class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection
{
	protected function _construct()
	{
		$this->_init('SmartOSC\HelloWorld\Model\Topic', 'SmartOSC\HelloWorld\Model\ResourceModel\Topic');
	}
}

CRUDコレクションクラスは、\Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollectionを継承し、_construct()関数内で_init()メソッドを呼び出してモデル、リソースモデルを初期化する必要があります。

デモを申し込む

弊社の専門家は最適なソリューションをサポートさせて頂きます。

►►►サービスについて