ฉันมีมุมมอง drupal ที่มีฟิลด์แบบเลือกได้หลายรายการที่ด้านบน ขึ้นอยู่กับการเลือกแถวของตารางและค่าของฟิลด์แบบเลือกหลายรายการ การดำเนินการบางอย่างจะดำเนินการกับแถวของตาราง ทุกอย่างขึ้นอยู่กับโมดูล VBO มุมมองมีลักษณะดังนี้:
ช่องเลือกหลายรายการเป็นรายการชื่อโหนดของประเภทเนื้อหาที่ระบุชื่อ "level2" ฉันคว้าชื่อโหนด "level2" และสร้าง multiselect ด้วยรหัสด้านล่าง:
// โหนดแบบสอบถาม
$storage = Drupal::getContainer()->get('entity_type.manager')->getStorage('node');
$nids = $storage->getQuery();
// รวบรวมโหนดระดับ 2 ที่เผยแพร่แล้วและจัดเรียงตามชื่อเรื่อง
$nids = $nids->เงื่อนไข ('ประเภท', 'ระดับ 2')
->เงื่อนไข ('สถานะ', 1)
->เรียงลำดับ('level2_title')
->ดำเนินการ ();
// หากไม่มีโหนด ให้ดำเนินการต่อ
ถ้า (!$nids) {
กลับ FALSE;
}
// เริ่มสร้างตัวเลือกสำหรับรายการที่เลือกของเรา
$ตัวเลือก = [];
$nodes = $storage->loadMultiple($nids);
// ดันชื่อเข้าในรายการที่เลือก
foreach ($ โหนดเป็น $ โหนด) {
$options[$node->id()] = $node->getTitle();
}
$form['exposed_input']['ka_types'] = [
'#type' => 'เลือก',
'#options' => $ตัวเลือก,
'#multiple' => จริง,
'#title' => 'เผยแพร่ไปยังกิจกรรมหลัก :',
];
array_unshift($form['#submit'], 'mymod_form_submit');
}
เมื่อทำกิจกรรมเฉพาะเจาะจงด้วยฟิลด์แบบเลือกหลายรายการ ในไฟล์การดำเนินการ ฉันจะอ่านค่าของการเลือกหลายรายการเป็น:
$ka_selected = \Drupal::state()->get('ka_types');
อย่างไรก็ตาม ฉันไม่สามารถอ่านฟิลด์เดียวกันจากกริดได้ การทำ dpm($entity) และ dpm($node) จะไม่แสดงฟิลด์นี้เลยในกริด ความช่วยเหลือใด ๆ เกี่ยวกับวิธีการอ่านค่าฟิลด์นี้จากตารางมุมมอง?