web-dev-qa-db-fra.com

Comment obtenir par programme le type de champ d'un champ spécifique?

Je peux obtenir une liste des types de champs avec le code suivant.

$defs = \Drupal::service('plugin.manager.field.field_type')->getDefinitions();

Je veux obtenir le type de champ d'un champ spécifique. Comment l'obtenir?

Par exemple, je voudrais vérifier si le type de champ de field_image est _image. Existe-t-il un code similaire au suivant?

$fieldType = \Drupal::service('plugin.manager.field.field_type')->getDefinition('field_image');
5
Matt

Avec "obtenir le type de champ d'un champ spécifique", vous entendez probablement un champ spécifique d'une entité. Il peut y avoir des champs avec le même nom qui ont différents types dans différentes entités.

Par exemple, le type de champ d'un champ dans un nœud:

$field_type = $node->get($field_name)->getFieldDefinition()->getType();

peut être différent de celui du même champ dans un commentaire:

$field_type = $comment->get($field_name)->getFieldDefinition()->getType();
8
4k4