Удалить заблокированные поля программно


Я обновил веб-сайт до drupal 8, в котором я обнаружил созданное поле, и мне нужно удалить это поле, так как оно стало бесполезным.

Поле заблокировано, и это мешает мне удалить его из интерфейса. Я попытался удалить его с помощью field_purge_field(), но это тоже не сработало.

Ответ для Как правильно удалять поля программно? не сработало для меня.

Редактировать: Я попробовал этот фрагмент кода, но ничего не сделал вещь

$field = \Drupal::entityManager()->getStorage('field_config')->load($entity_type.$bundle_name.$field_machine_name);
field_purge_field($field);

Как удалить поля, которые в результате заблокированы? Как мне разблокировать их перед удалением?

 5
Author: Community, 2016-04-27

2 answers

Очистка - это второй шаг после удаления поля. поле.модуль должен сделать это автоматически для вас.

Конфигурация поля - это сущность, вы удаляете ее, как и любую другую сущность:

$field->delete();
 8
Author: Berdir, 2016-04-27 19:23:13

Вот этот ответ, более простой, проверенный и работающий:

\Drupal::entityManager()->getStorage('field_config')->load('my_entity_type.my_bundle.my_field_name');

Но помните, что лучший способ сделать это, если вы можете, - просто удалить поле через пользовательский интерфейс, а затем экспортировать конфигурацию с помощью drush cex

 0
Author: Jeremy John, 2018-02-12 15:56:39