ฉันมีช่องสำหรับประเภทเนื้อหาที่กำหนดเองซึ่งเป็นการอ้างอิงถึงประเภทย่อหน้า โดยใช้วิดเจ็ตย่อหน้า (ทดลอง) ฉันกำลังพยายามแก้ไขวิดเจ็ตนั้นเพื่อแสดงและซ่อนฟิลด์ตามฟิลด์อื่นในย่อหน้า นี่คือรหัสแก้ไขวิดเจ็ตของฉัน:
$field = 'field_supporter_form_fields';
$id_field = 'field_primary_custom';
$เดลต้า = $องค์ประกอบ['#เดลต้า'];
$id = sprintf('select[name="%s[%d][subform][%s]"]', $field, $delta, $id_field);
$element['subform']['field_field_type']['widget']['#states'] = [
'มองเห็นได้' => [
$id => ['value' => 'กำหนดเอง'],
]
];
$element['subform']['field_field_type']['widget']['#title'] = 'บลา!';
ฉันรู้ว่าฉันกำลังกำหนดเป้าหมายวิดเจ็ตที่ถูกต้อง เพราะฉันเห็นชื่อฟิลด์เปลี่ยนเป็น "บลา!" แต่การมองเห็นฟิลด์ไม่เปลี่ยนแปลง
นี่คือลักษณะของส่วนที่เกี่ยวข้องของ $element อาร์เรย์หลังการแก้ไข:
[#parents] => อาร์เรย์
(
[0] => field_supporter_form_fields
[1] => 0
[2] => ฟอร์มย่อย
[3] => field_field_type
)
[#states] => อาร์เรย์
(
[มองเห็นได้] => อาร์เรย์
(
[select[name="field_supporter_form_fields[0][subform][field_primary_custom]"]] => อาร์เรย์
(
[ค่า] => กำหนดเอง
)
)
)
เขตข้อมูลขึ้นอยู่กับ field_primary_custom
เป็นปุ่มตัวเลือกคู่ที่มีค่าหลักหรือกำหนดเอง ชื่อขององค์ประกอบในหน้าคือ field_supporter_form_fields[0][subform][field_primary_custom]
ซึ่งตรงกับสิ่งที่ฉันมีในตัวระบุ
เหตุใดการมองเห็นจึงไม่เปลี่ยนแปลง