カスタムコンテンツタイプからデータ全体をフェッチしてjsonファイルを生成するモジュールを作成したいと思いました。だから私は関数を使用しました
$values = \Drupal\Core\Entity\ContentEntityBase::get('field_name');
コンテンツタイプのフィールドとその値を読み取ります。すべてのフィールドとその値を動的にフェッチする方法。解決策はありますか?よろしくお願いします。
Entity Field Managerサービスから getFieldDefinitions を使用して、コンテンツタイプのすべてのフィールド定義を取得できます。定義にはフィールド名でインデックスが付けられるため、サイト内の任意のノードの返された配列のキーを反復処理できます。
例は次のようになります:
<?php
// Get the definitions
$definitions = \Drupal::service('entity_field.manager')->getFieldDefinitions('node', 'my_custom_content');
// Load a node for which you want to get the field values
$my_node = \Drupal\node\Entity\Node::load($my_nid);
// Iterate through the definitions
foreach (array_keys($definitions) as $field_name) {
// Get the values for your node
// Use getValue() if you want to get an array instead of text.
$values[$field_name] = $my_node->get($field_name)->value;
}