Ich hatte Probleme, API-Beispiele für die Entityqueue in Drupal 8 zu finden.
Am Ende schrieb ich eine Abfrage, um die Artikel zu erhalten.
$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();
Aber ich möchte wenn möglich eine eingebaute Funktion verwenden. Wo ist die Funktion zum Abrufen von Elementen aus einer Entitätswarteschlange?
Antworten:
Bei $ sid ist Ihre Subqueue-ID angegeben:
Lädt das Subqueue-Objekt. Sie können dies bearbeiten, um Ihre Entityqueue abzurufen oder zu aktualisieren.
So erhalten Sie die Artikel:
Um die Elemente zu aktualisieren, fügen Sie dem Array $ items ein weiteres Element hinzu und speichern Sie das Entitätsobjekt:
Voila!
Sie können in der Datenbank überprüfen, ob Ihre Entitätswarteschlange aktualisiert wurde:
Ich möchte auch hinzufügen, dass es eine großartige Alternative zur Verwendung von entityqueue in Drupal 8 gibt: das Config Pages- Modul. Sie können Entitätspakete erstellen, die nur eine Entität enthalten. Sie können dann einen beliebigen Feldtyp hinzufügen, einschließlich Entitätsreferenzfelder. Ich habe kürzlich eine Entitätswarteschlange in einem Projekt durch eine Konfigurationsseite mit einem Entitätsreferenzfeld ersetzt und die Benutzererfahrung bevorzugt.
quelle
Es gibt auch eine Verknüpfung zum Laden der Unterwarteschlange:
\Drupal\entityqueue\Entity\EntitySubqueue::load($sid);
quelle