Score:1

การเพิ่มรายการลำดับในการกำหนดค่า

ธง mw

ฉันมีรายการการกำหนดค่าในโมดูลที่กำหนดเอง ซึ่งส่วนหนึ่งเป็นลำดับ โดยพื้นฐานแล้วฉันกำลังพยายามสร้างบางสิ่งที่คล้ายกับอาร์เรย์ของรายการ

my_module.schema.yml

my_module.settings:
  ประเภท: config_object
  ป้ายกำกับ: 'การกำหนดค่า'
  การทำแผนที่:
    custom_fields:
      ป้ายกำกับ: 'ฟิลด์ที่กำหนดเอง'
      ชนิด: ลำดับ
      ลำดับ:
        ประเภท: การทำแผนที่
        ป้ายกำกับ: 'ฟิลด์ที่กำหนดเอง'
        การทำแผนที่:
          field_label:
            ประเภท: สตริง
            ป้ายกำกับ: 'ป้ายกำกับฟิลด์'
          field_key:
            ประเภท: สตริง
            ป้ายกำกับ: 'คีย์ฟิลด์'

สิ่งที่ฉันต้องการทำได้คือเพิ่มรายการใหม่ใน 'รายการ' นี้ตามต้องการ แต่ส่วนใหญ่จนถึงตอนนี้ (ในพื้นที่อื่น ๆ ของโมดูลของฉัน) ฉันเพิ่งใช้ $config->set(คีย์, ค่า) ซึ่งจะเขียนทับการตั้งค่าปัจจุบัน มีวิธีเพิ่มค่าอื่นให้กับการตั้งค่าที่มีอยู่หรือไม่ หรือฉันต้องโหลดการกำหนดค่าที่มีอยู่ เพิ่มเข้าไปด้วยตนเอง แล้วจึงบันทึกทั้งล็อต

Score:0
ธง mw

ปรากฎว่าใช่คุณ สามารถ เรียกชุดตัวแปรที่มีอยู่และเพิ่มเข้าไป แต่ฉันไม่ได้บอกว่านี่เป็นวิธีที่ถูกต้องหรือดีที่สุดที่จะทำ

// โหลดการกำหนดค่าปัจจุบันและเพิ่มสิ่งนี้เข้าไป
$custom_fields = $config->get('custom_fields');
$custom_fields[] = อาร์เรย์(
  'field_label' => 'บางป้ายกำกับ',
  'field_key' => 'some_key',
);
$config->set('custom_fields', $custom_fields);

ข้างต้นทำงานได้ดี ถ้าใครพบสิ่งนี้และต้องการดูวิธีการทำ หรือใครรู้วิธีที่ดีกว่า โปรดอย่าลังเลที่จะแสดงความคิดเห็น

โพสต์คำตอบ

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