Điểm:1

ConfigNameException: Thiếu không gian tên trong tên đối tượng cấu hình xxx

lá cờ za

Drupal\Core\Config\ConfigNameException: Thiếu không gian tên trong tên đối tượng Cấu hình media_entity_file_replace. trong Drupal\Core\Config\ConfigBase::validateName() (dòng 97 của core/lib/Drupal/Core/Config/ConfigBase.php).

tôi không hiểu tôi đã làm gì sai trong biểu mẫu cấu hình của mình

media_entity_file_replace/src/Form/MediaEntityFileReplaceSettingsForm.php

không gian tên Drupal\media_entity_file_replace\Form;

sử dụng Drupal\Core\Form\ConfigFormBase;
sử dụng Drupal\Core\Form\FormStateInterface;

/**
 * Định cấu hình cài đặt media_entity_file_replace cho trang web này.
 */
lớp MediaEntityFileReplaceSettingsForm mở rộng ConfigFormBase {
Điểm:3
lá cờ de

Lỗi đến từ Drupal\Core\Config\ConfigBase:

hàm tĩnh công khai validateName($name) {
  // Tên phải được đặt tên bởi chủ sở hữu.
  if (strpos($name, '.') === FALSE) {
    throw new ConfigNameException("Thiếu không gian tên trong tên đối tượng cấu hình {$name}.");
  }
...

Bạn có tham chiếu đối tượng cấu hình ở đâu đó trong biểu mẫu của mình mà không có dấu chấm không? Ví dụ:

$config = \Drupal::config('config_with_no_namespace');
apaderno avatar
lá cờ us
Đây là lý do. Tôi hiểu tại sao lý do của ngoại lệ không rõ ràng lắm: Tài liệu về `\Drupal::config()` không làm cho nó rõ ràng; nó chỉ nói rằng tên của đối tượng cấu hình, được truyền cho phương thức, thường tương ứng với một tệp cấu hình. Nếu tệp cấu hình là media_entity_file_replace.yml, việc chuyển *media_entity_file_replace* sang `Drupal::config()` có vẻ đúng.
Geat avatar
lá cờ de
Tôi đồng ý rằng nó không rõ ràng. Tôi chắc rằng bạn hiểu, nhưng đối với những người có thể bị nhầm lẫn bởi điều này, lý do căn bản là nó tránh xung đột tên cấu hình - bạn có thể có một cấu hình cho mô-đun của mình có tên là `General_settings` nhưng nhiều mô-đun khác cũng vậy, đặt tên cho nó bằng tên mô-đun đảm bảo nó là duy nhất, ví dụ: `mymodule.General_settings`.
Matoeil avatar
lá cờ za
đã sửa bằng cách đổi tên config/install/media_entity_file_replace.settings.yml và $config = $this->config('media_entity_file_replace.settings');

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.