รับ $ sid เป็นรหัสย่อยของคุณ:
$entity_subqueue = \Drupal::entityManager()->getStorage('entity_subqueue')->load($sid);
โหลดวัตถุ subqueue คุณสามารถจัดการสิ่งนี้เพื่อดึงหรืออัพเดทเอนทิตี้ของคุณ
ในการรับไอเท็ม:
$items = $entity_subqueue->get('items')->getValue();
ในการอัพเดตไอเท็มให้เพิ่มไอเท็มอื่นในอาร์เรย์ $ items จากนั้นบันทึกออบเจ็กต์เอนทิตี:
$items[] = ['target_id' => 69];
$entity_subqueue->set('items', $items);
$entity_subqueue->save();
Voila!
คุณสามารถตรวจสอบในฐานข้อมูลว่าคิวเอนทิตีของคุณได้รับการอัพเดต:
select * from entity_subqueue__items where bundle = :sid;
ฉันอยากจะเพิ่มว่ามีทางเลือกที่ดีในการใช้ entityqueue ใน Drupal 8: โมดูลConfig Pages อนุญาตให้คุณสร้างบันเดิลเอนทิตีที่มีเอนทิตีเดียวเท่านั้น จากนั้นคุณสามารถเพิ่มประเภทฟิลด์ใดก็ได้ที่คุณต้องการรวมถึงฟิลด์การอ้างอิงเอนทิตี ฉันเพิ่งแทนที่คิวเอนทิตีในโครงการด้วยเพจปรับแต่งด้วยฟิลด์การอ้างอิงเอนทิตีและฉันต้องการประสบการณ์ผู้ใช้