Рейтинг:1

ConfigNameException: отсутствует пространство имен в имени объекта конфигурации xxx

флаг za

Drupal\Core\Config\ConfigNameException: отсутствует пространство имен в имени объекта конфигурации media_entity_file_replace. в Drupal\Core\Config\ConfigBase::validateName() (строка 97 core/lib/Drupal/Core/Config/ConfigBase.php).

я не совсем понимаю, что я сделал неправильно в моей форме конфигурации

media_entity_file_replace/src/Form/MediaEntityFileReplaceSettingsForm.php

пространство имен Drupal\media_entity_file_replace\Form;

используйте Drupal\Core\Form\ConfigFormBase;
используйте Drupal\Core\Form\FormStateInterface;

/**
 * Настройте параметры media_entity_file_replace для этого сайта.
 */
класс MediaEntityFileReplaceSettingsForm расширяет ConfigFormBase {
Рейтинг:3
флаг de

Ошибка исходит от Друпал\Ядро\Конфиг\КонфигБасе:

общедоступная статическая функция validateName($name) {
  // Имя должно быть задано владельцем.
  if (strpos($name, '.') === FALSE) {
    throw new ConfigNameException("Отсутствует пространство имен в имени объекта конфигурации {$name}.");
  }
...

Вы ссылаетесь на объект конфигурации где-то в своей форме без точки? Например:

$config = \Drupal::config('config_with_no_namespace');
apaderno avatar
флаг us
Это причина. Я понимаю, почему причина исключения не очень ясна: документация для `\Drupal::config()` не делает это явным; это просто говорит о том, что имя объекта конфигурации, переданное методу, обычно соответствует файлу конфигурации. Если файл конфигурации media_entity_file_replace.yml, передача *media_entity_file_replace* в `Drupal::config()` кажется правильной.
Geat avatar
флаг de
Я согласен, что это не ясно. Я уверен, вы понимаете это, но для людей, которые могут быть сбиты с толку этим, объяснение состоит в том, что это позволяет избежать конфликтов имен конфигурации - у вас может быть конфигурация для вашего модуля с именем `general_settings`, но так же могут быть и многие другие модули, пространство имен которых с имя модуля гарантирует его уникальность, например. `мой модуль.общие_настройки`.
Matoeil avatar
флаг za
исправлено с переименованием config/install/media_entity_file_replace.settings.yml и $config = $this->config('media_entity_file_replace.settings');

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

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