ฉันทำ เอนทิตีการกำหนดค่าแบบกำหนดเองและฉันกำลังพยายามตั้งค่าปุ่มตัวเลือกใน ตัวสร้างรายการ. สิ่งนี้ทำในภาษาโมดูลหลัก โดยไม่มีปัญหาใด ๆ แต่เมื่อฉันพยายามใช้กลอุบายเดียวกันกับเอนทิตีที่กำหนดเองของฉัน ฉันไม่สามารถรับปุ่มตัวเลือกใด ๆ แทนที่จะแสดงแอตทริบิวต์ในองค์ประกอบ html
ฟังก์ชันสาธารณะ buildRow (EntityInterface $entity) {
$row['label'] = $entity->label();
$row['ค่าเริ่มต้น'] = [
'#type' => 'วิทยุ',
'#parents' => ['site_default_language'],
'#title' => t('ตั้งค่า @title เป็นค่าเริ่มต้น', ['@title' => $entity->label()]),
'#title_display' => 'มองไม่เห็น',
'#return_value' => $entity->id(),
'#id' => 'แก้ไขไซต์เริ่มต้นภาษา-' $entity->id(),
];
// ทำเครื่องหมายภาษาที่ถูกต้องเป็นค่าเริ่มต้นในแบบฟอร์ม
ถ้า ($entity->id() == $this->languageManager->getDefaultLanguage()->getId()) {
$row['default']['#default_value'] = $entity->id();
}
ส่งคืน $row + parent::buildRow($entity);
}
จากนั้นฉันจะได้รับองค์ประกอบ html นี้โดยไม่มีข้อผิดพลาดในบันทึก:
<td #type="radio" #parents="active_scsp_server"
#title="..." #title_display="invisible"
#return_value="pre" #id="edit-active-scsp-server-pre" #default_value="pre">
</td>