Score:1

ConfigNameException: ไม่มีเนมสเปซในชื่อวัตถุ Config xxx

ธง za

Drupal\Core\Config\ConfigNameException: ไม่มีเนมสเปซในชื่อวัตถุ Config 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 {
Score:3
ธง de

ข้อผิดพลาดมาจาก Drupal\Core\Config\ConfigBase:

ฟังก์ชันคงสาธารณะ validateName($name) {
  // ชื่อต้องเป็นเนมสเปซโดยเจ้าของ
  ถ้า (strpos($name, '.') === FALSE) {
    โยน ConfigNameException ใหม่ ("ไม่มีเนมสเปซในชื่อวัตถุ Config {$name}");
  }
...

คุณอ้างอิงวัตถุการกำหนดค่าที่ไหนสักแห่งในแบบฟอร์มของคุณโดยไม่มีเครื่องหมายจุดหรือไม่? ตัวอย่างเช่น:

$config = \Drupal::config('config_with_no_namespace');
apaderno avatar
us flag
นี่คือเหตุผล. ฉันเข้าใจว่าทำไมเหตุผลของข้อยกเว้นจึงไม่ชัดเจน: เอกสารสำหรับ `\Drupal::config()` ไม่ได้ระบุไว้อย่างชัดเจน มันแค่บอกว่าชื่อของอ็อบเจกต์คอนฟิกูเรชันที่ส่งผ่านไปยังเมธอด โดยทั่วไปจะสอดคล้องกับไฟล์คอนฟิกูเรชัน หากไฟล์การกำหนดค่าเป็น media_entity_file_replace.yml การส่ง *media_entity_file_replace* ไปยัง `Drupal::config()` ดูเหมือนว่าถูกต้อง
Geat avatar
de flag
ฉันยอมรับว่ามันไม่ชัดเจน ฉันแน่ใจว่าคุณเข้าใจ แต่สำหรับคนที่อาจสับสนกับสิ่งนี้ เหตุผลก็คือเพื่อหลีกเลี่ยงการขัดแย้งกันของชื่อการกำหนดค่า คุณอาจมีการกำหนดค่าสำหรับโมดูลของคุณที่เรียกว่า `general_settings` แต่อาจมีโมดูลอื่นๆ อีกหลายโมดูลที่ใช้เนมสเปซด้วย ชื่อโมดูลช่วยให้แน่ใจว่าไม่ซ้ำกัน เช่น `mymodule.general_settings`.
Matoeil avatar
za flag
แก้ไขด้วยการเปลี่ยนชื่อ config/install/media_entity_file_replace.settings.yml และ $config = $this->config('media_entity_file_replace.settings');

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา