Saya mengalami kesulitan menemukan contoh API untuk entitasqueue di Drupal 8.
Saya akhirnya menulis permintaan untuk mendapatkan item.
$query = $this->database->select('entity_subqueue__items', 'esi')
->fields('esi', array('items_target_id'))
->condition('esi.bundle', $name_of_queue)
->orderBy('delta', 'ASC');
$nids = $query->execute()->fetchCol();
Tetapi saya ingin menggunakan fungsi bawaan jika memungkinkan. Di mana fungsi untuk mengambil item dari antrian entitas?
Jawaban:
Diberi $ sid adalah id subqueue Anda:
Memuat objek subqueue. Anda dapat memanipulasi ini untuk mengambil atau memperbarui entitas Anda.
Untuk mendapatkan barang:
Untuk memperbarui item, tambahkan item lain ke array $ items dan kemudian simpan objek entitas:
Voila!
Anda dapat memeriksa di database bahwa antrian entitas Anda diperbarui:
Saya juga ingin menambahkan bahwa ada alternatif yang bagus untuk menggunakan entitasqueue di Drupal 8: modul Config Pages . Ini memungkinkan Anda untuk membuat bundel entitas yang hanya memiliki satu entitas. Anda kemudian dapat menambahkan jenis bidang apa pun yang Anda suka, termasuk bidang referensi entitas. Saya baru-baru ini menggantikan antrian entitas pada proyek dengan halaman konfigurasi dengan bidang referensi entitas, dan saya lebih suka pengalaman pengguna.
sumber
Ada juga jalan pintas untuk memuat subqueue:
\Drupal\entityqueue\Entity\EntitySubqueue::load($sid);
sumber