Estava com problemas para encontrar exemplos de API para a fila de entidades no Drupal 8.
Acabei escrevendo uma consulta para obter os itens.
$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();
Mas eu gostaria de usar uma função interna, se possível. Onde está a função para recuperar itens de uma fila de entidades?
Respostas:
Dado $ sid é seu ID de sub-fila:
Carrega o objeto de sub-fila. Você pode manipular isso para recuperar ou atualizar sua fila de entidades.
Para obter os itens:
Para atualizar os itens, adicione outro item à matriz $ items e salve o objeto da entidade:
Voila!
Você pode verificar no banco de dados se sua fila de entidades está atualizada:
Eu também gostaria de acrescentar que existe uma ótima alternativa para usar o entityqueue no Drupal 8: o módulo Config Pages . Permite criar pacotes de entidades que possuem apenas uma entidade. Você pode adicionar qualquer tipo de campo que desejar, incluindo os campos de referência da entidade. Recentemente, substituí uma fila de entidades em um projeto por uma página de configuração com um campo de referência de entidade e preferi a experiência do usuário.
fonte
Há também um atalho para carregar a sub-fila:
\Drupal\entityqueue\Entity\EntitySubqueue::load($sid);
fonte