オブジェクトでフォームを使用する
Liferay DXP 7.4以降で利用可能
LiferayオブジェクトはFormsアプリケーションと統合されているので、ユーザー入力を受け取り、オブジェクトエントリを作成するためのフォームを設計することができます。 そのためには、まず新しいフォームを追加して、そのフォームがオブジェクトストレージタイプを使用するように設定します。 次に、目的のオブジェクトを選択し、フォームを設計し、そのフィールドを選択したオブジェクトのフィールドに対応させます。
ルールやバリデーションなど、Formsの全機能がオブジェクトに対してサポートされています。 ただし、ユーザーはオブジェクトの関係をフォームのフィールドにマッピングすることはできません。 オブジェクトの関係を含むカスタムレイアウトの作成方法については、オブジェクトレイアウトの設計 を参照してください。
オブジェクト用のフォームを追加する
以下の手順で、オブジェクトのエントリーを作成するためのフォームを追加します。
目的のサイトに移動し、 サイトメニュー(
)を開いて、 [Content & Data] → [Forms] に移動します。
追加 ボタン(
)をクリックします。
新しいフォームの [設定] ボタン(
)をクリックします。
Object ストレージの種類と、フォームで使用するオブジェクトを選択します。
これは、選択されたオブジェクトのデータを保存するフォームを設定します。
note公開され、アクティブなオブジェクトのみが表示されます。 フォームとオブジェクトは同時に1つしか接続できませんが、オブジェクトと複数のフォームを接続することは可能です。
[完了] をクリックします。
目的のオブジェクトにリンクしたら、フォームにフィールド要素を追加して、オブジェクトのフィールドに対応させることができます。
フォーム項目をオブジェクトフィールドにマップする
以下の手順で、フォームフィールドとオブジェクトフィールドを対応させます。
目的のオブジェクトフィールドに対応するフォームフィールドを追加する。
各タイプのオブジェクトフィールドと互換性のあるフォームフィールドの一覧は、 Field Compatibility Reference を参照してください。
[詳細設定] タブをクリックします。
希望する オブジェクトフィールド を選択します。
warning必須オブジェクトフィールドにマッピングされた場合、フォームフィールドは自動的に必須とマークされます。 フォームルールを使用して、必須フィールドを条件付きで非表示にする場合、その中に必ず適切なデータが入っていないとフォーム送信が失敗してしまいます。定義済み値 と autofill rule は必須の非表示フィールドに正しく入力されるようにすることができます。
希望するすべてのオブジェクトフィールドがフォームフィールドにマッピングされるまで、上記のプロセスを繰り返します。
noteオブジェクトフィールドは、1つのフォームフィールドにしかマッピングできません。
フォームレイアウトをデザインします。 この処理の詳細については、 フォーム のドキュメントを参照してください。
フォームのデザインが完了したら、 [公開] をクリックしてフォームの作成を終了します。
importantオブジェクトフォームを公開するには、すべての マッピング要件 を満たしている必要があります。
公開後、このフォームを使用して、選択したオブジェクトのオブジェクトエントリを作成することができます。
マッピング要件
オブジェクトストレージタイプのすべてのフォームには、次の要件があります。
データ損失を防ぐため、すべてのフォームフィールドはオブジェクトフィールドにマッピングする必要があります。
すべての必須オブジェクトフィールドは、フォームフィールドにマッピングされなければなりません。
無効なマッピングを使用してフォームを公開しようとすると、何が問題であるかを示すエラーメッセージが表示されます。
フィールド互換性リファレンス
Liferay 7.4 U20以降の場合
オブジェクト項目タイプ | 互換性のあるフォーム項目 |
---|---|
添付ファイル | ❌ |
ブール値 | ブール値(チェックボックス) |
日付 | 日付 |
小数(以前はDouble) | 数値 → 小数 |
整数 | 数値 → 整数 |
長い整数 (以前はLong) | 数値 → 整数 |
長いテキスト(以前はClob) | テキスト |
選択リスト | リストから選択、1つだけ選択 |
小数の精度 (以前はBigDecimal) | 数値 → 小数 |
リレーション | ❌ |
リッチテキスト | リッチテキスト |
Text (以前はString) | テキスト、複数選択、グリッド、色 |