web-dev-qa-db-fra.com

Différence entre le champ et l'instance de champ?

Lorsque nous allons sur le chemin /admin/structure/types/manage/article/fields et utilisez le Add new field option ou Add existing field option, cela crée-t-il un champ, crée-t-il une instance de champ ou attache-t-il une instance de champ? Comment les différencier? Donc, par programme, quand utiliser field_create_field , field_create_instance et l'API field_attach?

Dans la documentation de l'API de champ, il ne mentionne que l'interface utilisateur d'administration et ne parle jamais du chemin où créer les champs et les instances de champ. C'est donc déroutant. Je ne sais même pas si j'ai du sens.

15
Eugene Gerome

Un champ est la définition de base d'un champ lui-même. Une instance de champ est une instance de ce champ, attachée à une entité/un bundle.

  1. Les champs sont créés avec field_create_field
  2. Instances de champ, avec field_create_instance

Pour vérifier si le champ ou l'instance existe, utilisez

  1. field_info_field ou
  2. field_info_instance

Lorsque vous créez un champ via l'interface utilisateur, Drupal crée toujours une instance de champ sur cette entité/ce bundle.

Si vous ajoutez un champ existant, les données de champ sont clonées et une instance de champ est créée sur la nouvelle entité/bundle.

Enfin, les paramètres de champ s'appliquent globalement à ce champ, les paramètres d'instance de champ peuvent varier entre les ensembles d'entités.

24
David Thomas