Miałem problemy ze znalezieniem przykładów API dla kolejki jednostek w Drupal 8.
Skończyło się na napisaniu zapytania, aby uzyskać przedmioty.
$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();
Ale jeśli to możliwe, chciałbym użyć wbudowanej funkcji. Gdzie jest funkcja pobierania elementów z kolejki jednostek?
Odpowiedzi:
Biorąc pod uwagę $ sid jest twoim identyfikatorem podkolejki:
Ładuje obiekt podkolejki. Możesz nim manipulować, aby odzyskać lub zaktualizować kolejkę encji.
Aby zdobyć przedmioty:
Aby zaktualizować elementy, dodaj kolejny element do tablicy $ items, a następnie zapisz obiekt encji:
Voila!
W bazie danych można sprawdzić, czy kolejka jednostek jest zaktualizowana:
Chciałbym również dodać, że w Drupal 8 istnieje świetna alternatywa dla używania encji . Moduł Config Pages . Pozwala tworzyć pakiety jednostek, które mają tylko jedną jednostkę. Następnie możesz dodać dowolny typ pola, w tym pola odniesienia encji. Niedawno zastąpiłem kolejkę encji w projekcie stroną konfiguracji z polem referencji encji i wolałem wrażenia użytkownika.
źródło
Istnieje również skrót do załadowania podkolejki:
\Drupal\entityqueue\Entity\EntitySubqueue::load($sid);
źródło