मैंने इसे getFieldDefinitions()
परिभाषित में प्रयोग करके हासिल किया Class EntityManager
। तो एक विशेष बंडल में उपयोग किए जाने वाले सभी क्षेत्रों को प्राप्त करने के लिए, यहां एक तरीका है:
$bundle_fields = \Drupal::entityManager()->getFieldDefinitions('node', 'article');
यद्यपि उपरोक्त में फ़ील्ड के रूप $bundle_fields
में भी शामिल है nid, uuid, revisions, langcode, etc
। इसलिए एक सटीक आउटपुट प्राप्त करने के लिए मैंने ऐसा कुछ किया:
$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();
यह करेंगे। मैं नहीं यकीन है कि क्या के बराबर रहा हूँfield_info_instances()
है,FieldStorageConfig
एक है प्रतीत नहीं होता है