У меня были проблемы с поиском примеров API для entityqueue в Drupal 8.
Я закончил писать запрос, чтобы получить предметы.
$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();
Но я бы хотел использовать встроенную функцию, если это возможно. Где находится функция для извлечения элементов из очереди объектов?
Ответы:
Данный $ sid является вашим идентификатором под очереди:
Загружает объект очереди. Вы можете манипулировать этим, чтобы получить или обновить вашу сущность.
Чтобы получить предметы:
Чтобы обновить элементы, добавьте еще один элемент в массив $ items, а затем сохраните объект сущности:
Вуаля!
Вы можете проверить в базе данных, что ваша очередь объектов обновлена:
Я также хотел бы добавить, что в Drupal 8 есть отличная альтернатива использованию entityqueue: модуль Config Pages . Это позволяет вам создавать пакеты сущностей, которые имеют только одну сущность. Затем вы можете добавить любой тип поля, который вам нравится, включая поля ссылок на сущности. Недавно я заменил очередь объекта в проекте страницей конфигурации с полем ссылки на объект, и я предпочел взаимодействие с пользователем.
источник
Существует также ярлык для загрузки под очереди:
\Drupal\entityqueue\Entity\EntitySubqueue::load($sid);
источник