Когда мы идем по пути /admin/structure/types/manage/article/fields
и используем Add new field
параметр или Add existing field
параметр, это создает поле, создает экземпляр поля или присоединяет экземпляр поля? Как отличить их? Итак, программно, когда использовать field_create_field , field_create_instance и field_attach API?
В документации по API полей упоминается только интерфейс администратора и никогда не говорится о пути создания полей и экземпляров полей. Так что это сбивает с толку. Я даже не знаю, имею ли я смысл.
node/add/article
являются экземплярами полей (которые повторно используются в нескольких различных типах сущностей). А поля у пути/admin/structure/types/manage/article/fields
- это поля. В базе данных я не вижу таблицу экземпляров поля, а только таблицу field_data, которую, я думаю, мы получаем, когда мы впервые создаем поле при/admin/structure/types/manage/article/fields
использовании путиfield_create_field
. И затем экземпляр присоединяется к комплекту (в данном случае к статье), который мы видим в путиnode/add/article
.Ответы:
Поле - это базовое определение самого поля. Экземпляр поля - это экземпляр этого поля, прикрепленный к объекту / комплекту.
Чтобы проверить, существует ли поле или экземпляр, используйте
Когда вы создаете поле через пользовательский интерфейс, Drupal всегда создает экземпляр поля для этого объекта / пакета.
Если вы добавляете существующее поле, данные поля клонируются, и создается экземпляр поля для нового объекта / пакета.
Наконец, настройки поля применяются глобально к этому полю, настройки экземпляра поля могут различаться в зависимости от комплекта сущностей.
источник