Рейтинг:0

Как полностью удалить поле?

флаг sa

Я удалил поле из пакета (оно больше нигде не используется) с помощью графического интерфейса.

Но он все еще отображается, когда я запускаю следующую команду (после очистки кеша)

$this->entityFieldManager->getFieldDefinitions('узел', $bundle); 

Что мне сделать, чтобы полностью удалить его (поскольку я использую предыдущую команду для отображения некоторого списка)

изменить, чтобы добавить:

По предложению Клайва я провел поле_cron() безуспешно. Глядя на код этой функции, я попробовал следующий код, чтобы получить больше информации:

$deleted_fields_repository = \Drupal::service('entity_field.deleted_fields_repository');
$fields = $deleted_fields_repository->getFieldDefinitions(NULL);

Как вы можете себе представить, $поля пустой. Может коррупция какая?

редактировать, чтобы добавить 2

Следуя предложению 4k4, я запустил этот код:

$field_storage = \Drupal\field\Entity\FieldStorageConfig::loadByName('узел', 'поле_которое_должно_быть_удалено');
dpm($field_storage->get('persist_with_no_fields'));

И результат ЛОЖНЫЙ

Таким образом, вопрос: как вручную удалить поле?

4uk4 avatar
флаг cn
Возможно, хранилище полей помечено как persist_with_no_fields, что означает, что оно должно сохраняться, даже если оно больше не используется ни в одном пакете.
Baud avatar
флаг sa
@4k4: я обновил свой вопрос: похоже, это не так
Рейтинг:0
флаг cn

Обычно для этого вы просто запускаете cron, потому что поле_cron() очищает удаленные данные.

Если вам нужно сделать это вручную по какой-либо причине, вы можете позвонить field_purge_batch() вручную.

Baud avatar
флаг sa
Спасибо. Похоже, это правильный ответ, но бесполезный в моем случае. Я обновил свой вопрос.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.