W moim przypadku użycia mam encję, która ma dwa pola, które odnoszą się do unikalnych słowników.
Wiadomości: - tag (odniesienie do podmiotu) - kategoria (odniesienie do podmiotu)
Jeśli zapytam o jedno z tych odniesień, otrzymam wyniki, ale kiedy zapytam o oba (filtr ORAZ), nie otrzymam żadnych wyników. Do tej pory sprawdziłem go trzykrotnie i istnieją podmioty, które zawierają zarówno znacznik, jak i kategorię, o którą pytam.
Czy to błąd użytkownika czy błąd Drupala?
$query = \Drupal::entityQuery('node')
->condition('status', 1)
->condition('type', 'news')
;
$group = $query->andConditionGroup()
->condition('field_tag.entity.name', ['cars'], 'IN')
->condition('field_category.entity.name', ['sport'], 'IN')
;
$query->condition($group);
$nids = $query->execute();
EDYCJA: Znalazłem obejście, sprawdzając surową wartość zamiast encji.value. Jest to jednak sytuacja niepożądana
$query = \Drupal::entityQuery('node')
->condition('status', 1)
->condition('type', 'news')
;
$group = $query->andConditionGroup()
->condition('field_tag.entity.name', ['cars'], 'IN')
->condition('field_category', [1], 'IN')
;
$query->condition($group);
$nids = $query->execute();