UIを使用してフィールドを定義し、カスタムモジュールでYAMLファイルを使用していくつかのフィールドを定義しました。例:
フィールドストレージはfield.storage.node.my_heading
で定義されます。
langcode: en
status: true
dependencies:
enforced:
module:
- my_module
id: node.my_heading
field_name: my_heading
entity_type: node
type: string
settings: { }
module: core
locked: false
cardinality: 1
translatable: true
indexes: { }
persist_with_no_fields: false
custom_storage: false
(エンティティにフィールドをアタッチする)フィールドインスタンスはfield.field.node.my_content_type.my_heading
で定義されます。
langcode: en
status: true
dependencies:
config:
- field.storage.node.my_heading
- node.type.my_content_type
id: node.my_content_type.my_heading
field_name: my_heading
entity_type: node
bundle: my_content_type
label: 'Heading'
description: 'An optional heading'
required: false
translatable: true
default_value: { }
default_value_callback: ''
settings: { }
field_type: string
このカスタムモジュールをインストールした後、コードでフィールド構成を取得するにはどうすればよいですか?
(Drupalでいつものように)用語は少し混乱しますが、ここに行きます:
フィールドストレージ構成は FieldStorageConfig で定義されます。これをロードするには、次のようにします。
$field = Drupal::entityTypeManager()->getStorage('field_storage_config')->load('node.my_field');
フィールドインスタンス構成は FieldConfig で定義されます。これをロードするには、次のようにします。
$field_instance = Drupal::entityTypeManager()->getStorage('field_config')->load('node.my_content_type.my_field');