Tôi có chế độ xem drupal có trường nhiều lựa chọn ở trên cùng. Dựa trên lựa chọn hàng lưới và giá trị trường nhiều lựa chọn, các hành động cụ thể được thực hiện trên các hàng lưới. Tất cả đều dựa trên mô-đun VBO. Xem trông giống như dưới đây:
Trường nhiều lựa chọn là danh sách tiêu đề nút của một loại nội dung cụ thể có tên là "cấp 2". Tôi đã lấy tiêu đề nút "cấp 2" và tạo đa lựa chọn đó với mã bên dưới:
// Truy vấn các nút
$storage = Drupal::getContainer()->get('entity_type.manager')->getStorage('node');
$nids = $storage->getQuery();
// Thu thập các nút Cấp 2 đã xuất bản và sắp xếp theo tiêu đề
$nids = $nids->condition('type', 'level2')
->điều kiện('trạng thái', 1)
->sắp xếp('level2_title')
->thực thi();
// Nếu không có nút nào, hãy tiếp tục
nếu (!$nids) {
trả về SAI;
}
// Bắt đầu xây dựng các tùy chọn cho danh sách lựa chọn của chúng ta
tùy chọn $ = [];
$nodes = $storage->loadMultiple($nids);
// Đẩy tiêu đề vào danh sách chọn
foreach ($nodes là $node) {
$options[$node->id()] = $node->getTitle();
}
$form['exposed_input']['ka_types'] = [
'#type' => 'chọn',
'#options' => $options,
'#multiple' => ĐÚNG,
'#title' => 'Xuất bản lên Hoạt động chính :',
];
array_unshift($form['#submit'], 'mymod_form_submit');
}
Khi thực hiện một hoạt động cụ thể với trường chọn nhiều lần, trên tệp hành động tôi đọc giá trị của chọn nhiều lần là:
$ka_sered = \Drupal::state()->get('ka_types');
Tuy nhiên, tôi không thể đọc cùng một trường từ lưới. thực hiện dpm($entity) và dpm($node) hoàn toàn không hiển thị trường này trong lưới. Bất kỳ trợ giúp về cách đọc giá trị trường này từ lưới xem?