lightning:recordEditForm
lightning:recordEditForm コンポーネントは、レコード ID を受け入れるラッパーコンポーネントで、lightning:inputField を使用してそのレコードに関連付けられている 1 つ以上の項目と表示ラベルを表示するために使用されます。lightning:recordEditForm には、項目を表示するレコードのレコード ID が必要です。レコードデータを表示するために、その他の追加の Apex コントローラまたは Lightning データサービスは必要ありません。また、このコンポーネントは項目レベルのセキュリティと共有も処理するため、ユーザにはアクセス権があるデータのみが表示されます。
lightning:recordEditForm と lightning:inputField は、次の機能をサポートします。
- 指定されたレコードを編集するためのレコード編集レイアウトの表示
- 新しいレコードを作成するためのレコード作成レイアウトの表示
レコード編集レイアウトに type="submit" の lightning:button が含まれていて、それがクリックされると、コンポーネントは自動的にエラー処理を実行し、入力項目の変更を保存します。同様に、レコード作成レイアウトにこのボタンが含まれていてクリックされると、エラー処理が自動的に実行され、指定した入力データで新しいレコードが作成されます。エラー処理をサポートし、エラーメッセージを表示するには、lightning:messages を含める必要があります。さらに、このコンポーネントは、基本的な入力規則も提供します。たとえば、[メール] 項目に無効なメール形式を入力すると、変更を送信しようとしたときにエラーメッセージが表示されます。同様に、[姓] 項目などの必須項目が空白のまま変更を送信しようとすると、その項目にエラーメッセージが表示されます。
レコードの編集レコードの編集を有効にするには、編集するレコードの ID とそれに対応するオブジェクト API 参照名を渡します。lightning:inputField を使用して、レコード編集レイアウトに含める項目を指定します。
レコードの作成を有効にするには、作成するレコードのオブジェクト API 参照名を渡します。レコード作成レイアウトに含める項目を指定します。
組織でレコードタイプを使用している場合、選択リスト項目にはレコードタイプに応じた値が表示されます。オブジェクトに複数のレコードタイプがあり、デフォルトのレコードタイプがない場合は、recordTypeId 属性を使用してレコードタイプ ID を指定する必要があります。
レコードタイプの ID を見つけるには、次の SOQL クエリを使用します。
レコード編集レイアウトに複数列レイアウトを作成するには、Lightning Design System のグリッドユーティリティクラスを使用します。この例では、2 列レイアウトを作成します。
ルックアップタイプは Lightning Experience でのみサポートされます。モバイルアプリケーションでルックアップタイプを使用すると、入力テキスト項目として表示されます。
サポートされるオブジェクトについては、『User Interface API Developer Guide (ユーザインターフェース API 開発者ガイド)』を参照してください。
属性
| 属性名 | 属性型 | 説明 | 必須かどうか |
|---|---|---|---|
| body | Component[] | コンポーネントのボディ���マークアップでは、これはタグのボディに含まれるすべてを指します。 | |
| class | String | コンポーネントの基本クラスに加え、外部要素の CSS クラス。 | |
| objectApiName | String | オブジェクトの API 参照名。 | はい |
| onerror | Action | フォーム送信でエラーが発生したときにトリガされるアクション。 | |
| onload | Action | フォームデータが読み込まれたときにトリガされるアクション。 | |
| onsubmit | Action | フォームが送信されたときにトリガされるアクション。 | |
| onsuccess | Action | フォームが保存されたときにトリガされるアクション。 | |
| recordId | String | 表示するレコードの ID。 | |
| recordTypeId | String | レコードタイプの ID。複数のレコードタイプを作成していて、デフォルトがない場合には必須です。 |