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 を使用して、レコード編集レイアウトに含める項目を指定します。
1<aura:component>
2 <lightning:recordEditForm recordId="003XXXXXXXXXXXXXXX" objectApiName="Contact">
3 <lightning:messages />
4 <lightning:inputField fieldName="FirstName" />
5 <lightning:inputField fieldName="LastName" />
6 <lightning:inputField fieldName="Email" />
7 <lightning:button class="slds-m-top_small" variant="brand" type="submit" name="update" label="Update" />
8 </lightning:recordEditForm>
9</aura:component>レコードの作成を有効にするには、作成するレコードのオブジェクト API 参照名を渡します。レコード作成レイアウトに含める項目を指定します。
1<aura:component>
2 <lightning:recordEditForm aura:id="recordEditForm"
3 objectApiName="Contact">
4 <lightning:messages />
5 <lightning:inputField fieldName="Name" />
6 <lightning:button class="slds-m-top_small" type="submit" label="Create new" />
7 </lightning:recordEditForm>
8</aura:component>組織でレコードタイプを使用している場合、選択リスト項目にはレコードタイプに応じた値が表示されます。オブジェクトに複数のレコードタイプがあり、デフォルトのレコードタイプがない場合は、recordTypeId 属性を使用してレコードタイプ ID を指定する必要があります。
レコードタイプの ID を見つけるには、次の SOQL クエリを使用します。
1Select Id, Name From RecordType Where SobjectType = 'Contact'レコード編集レイアウトに複数列レイアウトを作成するには、Lightning Design System のグリッドユーティリティクラスを使用します。この例では、2 列レイアウトを作成します。
1<aura:component>
2 <lightning:recordEditForm recordId="003XXXXXXXXXXXXXXX" objectApiName="Contact">
3 <div class="slds-grid">
4 <div class="slds-col slds-size_1-of-2">
5 <!-- Your lightning:inputField components here -->
6 </div>
7 <div class="slds-col slds-size_1-of-2">
8 <!-- More lightning:inputField components here -->
9 </div>
10 </div>
11 </lightning:recordEditForm>
12</aura:component>ルックアップタイプは 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。複数のレコードタイプを作成していて、デフォルトがない場合には必須です。 |