Saya mencapainya menggunakan getFieldDefinitions()
didefinisikan dalam Class EntityManager
. Jadi agar semua bidang digunakan dalam bundel tertentu, Berikut adalah caranya:
$bundle_fields = \Drupal::entityManager()->getFieldDefinitions('node', 'article');
Padahal di atas $bundle_fields
juga berisi nid, uuid, revisions, langcode, etc
sebagai bidang. Jadi untuk mendapatkan hasil yang akurat saya melakukan sesuatu seperti ini:
$entity_type_id = 'node';
$bundle = 'article';
foreach (\Drupal::entityManager()->getFieldDefinitions($entity_type_id, $bundle) as $field_name => $field_definition) {
if (!empty($field_definition->getTargetBundle())) {
$bundleFields[$entity_type_id][$field_name]['type'] = $field_definition->getType();
$bundleFields[$entity_type_id][$field_name]['label'] = $field_definition->getLabel();
}
}
$fields = $entity->getFieldDefinitions();
akan melakukannya. Saya tidak yakin apa yang sederajat dengannyafield_info_instances()
,FieldStorageConfig
tampaknya tidak memilikinya