web-dev-qa-db-ja.com

ターゲットタイプごとにフィールドを読み込む方法は?

段落タイプの参照フィールドを持つコンテンツタイプがあります。 hook_form_alterで参照フィールドを取得するにはどうすればよいですか?

これが私のフィールドです:

[field_media_audio] => Drupal\field\Entity\FieldConfig Object
        (
            [deleted:protected] => 
            [fieldStorage:protected] => Drupal\field\Entity\FieldStorageConfig Object
                (
                    [id:protected] => node.field_media_audio
                    [field_name:protected] => field_media_audio
                    [entity_type:protected] => node
                    [type:protected] => entity_reference_revisions
                    [module:protected] => entity_reference_revisions
                    [settings:protected] => Array
                        (
                            [target_type] => paragraph
                        )

                    [cardinality:protected] => -1
                    [translatable:protected] => 1
                    [locked:protected] => 
                    [persist_with_no_fields:protected] => 
                    [custom_storage] => 
                    [indexes:protected] => Array
                        (
                        )

                    [deleted:protected] => 
                    [schema:protected] => 
                    [propertyDefinitions:protected] => Array
                        (
                            [target_id] => Drupal\Core\TypedData\DataReferenceTargetDefinition Object
                                (
                                    [definition:protected] => Array
                                        (
                                            [type] => integer
                                            [label] => Drupal\Core\StringTranslation\TranslatableMarkup Object
1
Sugandh Khanna

このvarダンプで確認できることから、フィールドはどの段落タイプでも保持できるため、フィールドにどのフィールドが含まれているのかわかりません。

フィールドを1つの段落タイプに制限したら、このタイプのフィールド定義をロードします。

$fields_paragraph = \Drupal::service('entity_field.manager')
  ->getFieldDefinitions('paragraph', 'my_paragraph_type');
2
4k4