เมื่อทำตามบทช่วยสอนและเอกสารประกอบ ฉันสามารถสร้างฟิลด์แบบกำหนดเองที่รองรับค่าสตริงเดียวได้ อย่างไรก็ตาม สิ่งที่ฉันต้องการทำให้สำเร็จคือรายการที่กำหนดเอง (โดยเฉพาะอย่างยิ่ง ช่องทำเครื่องหมาย ชนิด) ซึ่งผู้ใช้สามารถเลือกตัวเลือกต่างๆ ได้ ฉันพยายามค้นหาใน core/modules/options schema.yml และการคัดลอกการตั้งค่าพื้นที่เก็บข้อมูลยังคงให้ผลลัพธ์เหมือนเดิม ฉันได้รับข้อผิดพลาด ค่านี้ควรเป็นประเภทดั้งเดิมที่ถูกต้อง
นี่คือสิ่งที่ฉันเชื่อว่าเป็นส่วนของโค้ดที่เกี่ยวข้องที่ฉันมีอยู่ในปัจจุบัน:
ในฟิลด์ประเภท/
  สคีมาของฟังก์ชันสแตติกสาธารณะ (FieldStorageDefinitionInterface $field_definition) {
    กลับ [
      // คอลัมน์มีค่าที่ฟิลด์จะจัดเก็บ
      'คอลัมน์' => [
        'ค่า' => [
          'ประเภท' => 'ข้อความ',
          'ขนาด' => 'ปกติ',
          'ไม่เป็นโมฆะ' => FALSE
          'ซีเรียลไลซ์' => TRUE
        ]
      ]
      'ดัชนี' => [
        'ค่า' => ['ค่า'],
      ]
    ];
  }
ในวิดเจ็ตฟิลด์/
  ฟังก์ชันสาธารณะ formElement (FieldItemListInterface $items, $delta, array $element, array &$form, FormStateInterface $form_state) {
    $sglists = ['1' => 'a', '2' => 'b'];
    $องค์ประกอบ['ค่า'] = $องค์ประกอบ + [
        '#type' => 'ช่องทำเครื่องหมาย',
        '#options' => $sglist,
        '#empty_value' => '',
        '#default_value' => (isset($items[$delta]->value) && isset($sglists[$items[$delta]->value])) ? $items[$delta]->value : NULL,
        '#description' => t('เลือกรายการ Sendgrid'),
      ];
    ส่งคืนองค์ประกอบ $;
  }
ใน schema.yml
field.storage_settings.sendgridlists:
  ป้ายกำกับ: 'รายการ Sendgrid'
  ประเภท: การทำแผนที่
  การทำแผนที่:
    รายการที่เลือกได้:
      ชนิด: ลำดับ
      ป้ายกำกับ: 'รายการที่เลือกได้'
      ลำดับ:
        ประเภท: สตริง
ฉันค่อนข้างแน่ใจว่าปัญหาของฉันมาจาก schema.yml แต่ฉันไม่ค่อยเข้าใจวิธีเปลี่ยนจากค่าเดียวเป็นรายการหลายค่า (คล้ายกับแกน/โมดูล/ตัวเลือก)
ความช่วยเหลือใด ๆ ที่ได้รับความนิยมอย่างมาก รวมถึงลิงก์ไปยังโมดูลการสนับสนุนที่มีอยู่ซึ่งสร้างแบบกำหนดเองได้สำเร็จ ช่องทำเครื่องหมาย ประเภทฟิลด์ที่ฉันสามารถอ้างอิงได้