コレクションを使用してオブジェクトエントリを表示する
ライフレイ 7.4 U77+/GA77+
オブジェクト定義を公開すると、Liferay によって コレクション プロバイダー が作成されます。 サイトスコープのオブジェクトの場合、オブジェクトの手動コレクションまたは動的コレクションを 作成 することもできます。 これらのコレクションを コレクション表示フラグメント および コレクション ページ と共に使用して、オブジェクト エントリを表示できます。 オブジェクトは、フィルタリング、スタイル設定、表示オプションなど、すべてのコレクション表示機能をサポートします。
- インスタンス スコープのオブジェクトは、手動コレクションまたは動的コレクションでは使用できません。 Liferay DXP では、検索ブループリントとそのコレクションプロバイダーを使用して、ほとんどのユースケースを実現できます。 詳細については、 検索ブループリントを使用したコレクション を参照してください。
- 下書きエントリはコレクションに表示できません。 オブジェクト エントリを最初に公開する必要があります。
オブジェクトコレクションの使用
-
新しい コンテンツ ページ または 表示ページ テンプレートを作成します。 または、既存のものを編集 (
) します。注コレクション プロバイダーを使用してコレクション ページを作成することもできます。 詳細については、 コレクションとコレクション ページ を参照してください。
-
フラグメントとウィジェット (
) サイドバーから、 コレクション表示 フラグメントをページまたはテンプレートにドラッグ アンド ドロップします。 -
[コレクション表示フラグメント] を選択して設定オプションにアクセスし、[General]タブの [Select Collection ]をクリックします。
![フラグメントを選択し、[コレクションを選択]をクリックします。](https://resources.learn.liferay.com/images/dxp/latest/en/low-code/objects/displaying-object-entries/displaying-object-entries-with-collection-providers/images/01.png)
-
モーダル ウィンドウで、コレクションを選択するか、 コレクション プロバイダー タブをクリックして、オブジェクトのプロバイダーを選択します。
注Liferay DXP 2024.Q4+/Portal GA129+ それぞれのコレクションプロバイダーを使用して、登録されたシステムオブジェクト(アカウント、コマース注文品目、コマース注文、組織、ユーザーなど)のエントリにアクセスできます。
-
(オプション) 表示されるオブジェクト エントリをフィルターします。 オブジェクト内の任意の選択リストまたはブール値フィールドでフィルタリングできます。
コレクション オプション (
) をクリックし、 フィルター コレクションを選択します。![[Collection Options]ボタンをクリックして、[Filter Collection]を選択します。](https://resources.learn.liferay.com/images/dxp/latest/en/low-code/objects/displaying-object-entries/displaying-object-entries-with-collection-providers/images/03.png)
次に、必要な フィルター を選択し、 適用をクリックします。

目的のコレクションを選択した後、 リスト スタイル や ページネーションなどの追加のフラグメント オプションを使用して、オブジェクト エントリの表示方法を決定します。
コレクション表示フラグメントのオブジェクトを選択すると、そのオブジェクトがマッピング ソースとして設定されます。 コレクション表示にフラグメントを追加すると、その サブ要素 をオブジェクト フィールドにマップして、個々のオブジェクト エントリの柔軟なページ表示を作成できます。 これはコレクションページにも当てはまります。
たとえば、コレクション表示フラグメントに見出しを埋め込み、コレクション内の各項目の名前を表示するように構成できます。 1 対多の関係の子側のオブジェクトを操作する場合は、関連する親オブジェクトのフィールドにフラグメントをマップすることもできます。

各リレーションシップ テーブルに対して生成されるリレーションシップ コレクション プロバイダーを使用して、リレーションシップ テーブルから関連オブジェクト エントリを表示できます。
リレーションシップ収集プロバイダー
ネストされた コレクション表示フラグメントを使用して、コレクション プロバイダーで関係テーブル から 関連オブジェクト エントリを表示できます。 最上位レベルのコレクション表示では親オブジェクトのコレクション プロバイダーが使用され、ネストされたコレクション表示では各親をその子オブジェクトに関連付けるための特別なリレーションシップ コレクション プロバイダーが使用されます。
リレーションシップ コレクション プロバイダーは 関連アイテム コレクション プロバイダー と呼ばれ、1 対多リレーションシップの親オブジェクトと、多対多リレーションシップの両方のオブジェクトに使用できます。 このコレクション プロバイダーは、関係テーブルを持つオブジェクトのネストされたコレクション表示フラグメントにのみ表示されます。

たとえば、国と都市の 1 対多の関係では、ネストされたコレクション表示の都市名フィールドにフラグメントをマッピングすることで、国とその子都市を表示できます。
ネストされたコレクション表示フラグメントを構成するための一般的な手順は次のとおりです。
- 親オブジェクトのコレクション プロバイダーを使用するように最上位レベルのコレクション表示を構成します。
- 関係テーブル データに対して生成された関連アイテム コレクション プロバイダーを使用するように、ネストされたコレクションの表示を構成します。
- 両方のコレクション表示フラグメントで、グリッド表示スタイルを選択し、それぞれのオブジェクト フィールドにマップされたフラグメントを追加します。
コレクション表示内の関連オブジェクトのフィールドにフラグメントをマッピングするには、
-
コレクション表示フラグメントでオブジェクトのコレクション プロバイダーを使用します。
-
別のコレクション表示フラグメントを、最初のコレクション表示内にコレクション アイテムとして埋め込みます。
ヒントページ編集メニューの ブラウザ タブを使用すると、ページ階層内でフラグメントをより正確に配置できます。

-
新しいコレクション表示フラグメントの構成オプションで、 コレクションの選択 をクリックします。
-
関連アイテムコレクションプロバイダー タブをクリックします。
-
オブジェクトの関係の名前を持つコレクション プロバイダーを選択します。 関連付けられているオブジェクト タイプが、関係の名前の下に表示されます。 この例では、関係は
国の都市と呼ばれます。
これで、新しいコレクション表示にフラグメントを埋め込み、関連オブジェクトのフィールドにマップできるようになりました。
