Cuando vamos a la ruta /admin/structure/types/manage/article/fields
y usamos la Add new field
opción o la Add existing field
opción, ¿eso crea un campo, crea una instancia de campo o adjunta una instancia de campo? ¿Cómo diferenciar entre ellos? Entonces, programáticamente, ¿cuándo usar field_create_field , field_create_instance y field_attach API?
En la documentación de la API de campo, solo menciona la IU del administrador y nunca habla sobre la ruta donde crear los campos y las instancias de campo. Entonces es confuso. Ni siquiera sé si tengo sentido.
node/add/article
son instancias de campo (que se reutilizan en varios tipos de entidades diferentes). Y los campos en el camino/admin/structure/types/manage/article/fields
son campos. En la base de datos, no veo una tabla de instancia de campo, sino solo una tabla field_data que, supongo, obtenemos cuando creamos un campo en la ruta/admin/structure/types/manage/article/fields
usandofield_create_field
. Y una instancia se adjunta a un paquete (artículo en este caso) que vemos en la rutanode/add/article
.Respuestas:
Un campo es la definición básica de un campo en sí. Una instancia de campo es una instancia de ese campo, adjunta a una entidad / paquete.
Para verificar si el campo o instancia existe, use
Cuando crea un campo a través de la interfaz de usuario, Drupal siempre crea una instancia de campo en esa entidad / paquete.
Si está agregando un campo existente, los datos del campo se clonan y se crea una instancia de campo en la nueva entidad / paquete.
Por último, la configuración de campo se aplica globalmente a ese campo, la configuración de instancia de campo puede variar entre los paquetes de entidades.
fuente