НОВИНКА!
Занимательная математика от Трепачёва. Присоединяйтесь к нам!
134 of 182 menu

Таблица field_config

Таблица field_config является центральным реестром для всех типов полей в Drupal. Каждая запись в этой таблице определяет отдельный тип поля (например, "Текст", "Ссылка", "Изображение") и его глобальные настройки, которые применяются ко всем экземплярам этого поля, где бы они ни использовались.

Поля

Поле Тип данных Описание
id int Первичный ключ, уникальный идентификатор конфигурации поля. Имеет автоинкремент.
field_name varchar(32) Машинное имя поля. Должно быть уникальным в пределах всей системы.
type varchar(128) Тип поля (модуль, предоставляющий этот тип). Например, text, image, entity_reference.
module varchar(128) Имя модуля, который предоставляет этот тип поля.
active int Флаг, указывающий, активно ли поле (1) или нет (0). Неактивные поля не загружаются в runtime.
storage_type varchar(128) Тип хранилища, используемый для поля. Определяет, в какой таблице (например, field_data_* или field_revision_*) хранятся данные.
storage_module varchar(128) Имя модуля, предоставляющего тип хранилища. Обычно это field_sql_storage.
storage_active int Флаг, указывающий, активно ли хранилище для этого поля (1) или нет (0).
locked int Флаг, указывающий, заблокировано ли поле (1) от изменений через пользовательский интерфейс. Обычно используется для полей, созданных кодом модуля.
data longblob Сериализованный массив (PHP serialize), содержащий все настройки поля. Включает настройки виджета, форматора, обработки и другие параметры.
cardinality int Количество значений, которое может содержать поле. -1 означает неограниченное количество значений, 1 или более – ограниченное.
translatable int Флаг, указывающий, является ли поле переводимым (1) или нет (0).
deleted int Флаг, указывающий, помечено ли поле как удаленное (1) или нет (0). В Drupal поля не удаляются из базы данных сразу, а помечаются для последующей очистки.

Как это работает

Когда вы создаете новое поле через административный интерфейс Drupal (например, добавляете поле "Изображение" к типу материала "Статья"), система создает запись в таблице field_config. Эта запись содержит машинное имя поля (field_name), его тип (type), модуль-владелец (module) и все его настройки, сериализованные в поле data.

Отдельно, в таблице field_config_instance, создается запись, которая связывает это общее определение поля (из field_config) с конкретным типом сущности (Bundle), например, "Статья". Это позволяет одному и тому же типу поля (например, "Текстовое поле") использоваться на разных типах материалов с разными настройками экземпляра (например, разный заголовок или описание).

Поле data является ключевым, так как хранит в сериализованном виде сложную структуру настроек. Это включает настройки отображения (форматоры), настройки редактирования (виджеты), допустимые значения, максимальную длину для текстовых полей, разрешенные расширения для файлов и многое другое.

Когда Drupal загружает информацию о полях для рендеринга или редактирования, он сначала обращается к field_config, чтобы получить общие настройки типа поля, а затем к field_config_instance, чтобы получить настройки для конкретного места использования. Эта архитектура обеспечивает гибкость и повторное использование типов полей.

Пример SQL-запроса

Получить список всех активных текстовых полей можно следующим запросом:

SELECT field_name, data FROM field_config WHERE type = 'text' AND active = 1 AND deleted = 0;

Смотрите также

  • таблицу field_config_instance,
    которая хранит настройки экземпляров полей для конкретных бандов
  • таблицу field_data_body,
    которая хранит данные полей основного содержимого
  • таблицу node,
    которая является основной таблицей для хранения материалов
  • таблицу cache_field,
    которая кэширует информацию о полях для производительности
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить