- πΊπΈUnited States damienmckenna NH, USA
Would it be useful to indicate which fields are pending deletion? I've ran into this problem a few times, most recently because a layout field wasn't fully deleted and it's taking a lot of effort to find the root of the problem. This is what I used to find the field names:
public function validate($module) { $reasons = []; if ($field_storages = $this->getFieldStoragesByModule($module)) { // Provide an explanation message (only mention pending deletions if there // remain no actual, non-deleted fields.) $fields_in_use = $fields_deleted = []; foreach ($field_storages as $field_storage) { if (!$field_storage->isDeleted()) { $fields_in_use[$field_storage->getType()][] = $field_storage->getLabel(); } else { $fields_deleted[] = $field_storage->getType(); } } if (!empty($fields_in_use)) { foreach ($fields_in_use as $field_type => $field_storages) { $field_type_label = $this->getFieldTypeLabel($field_type); $reasons[] = $this->formatPlural(count($fields_in_use[$field_type]), 'The %field_type_label field type is used in the following field: @fields', 'The %field_type_label field type is used in the following fields: @fields', ['%field_type_label' => $field_type_label, '@fields' => implode(', ', $field_storages)]); } } else { $reasons[] = $this->t('Fields pending deletion: @fields', [ '@fields' => implode(', ', $fields_deleted), ]); } } return $reasons; }