In meinem Anwendungsfall habe ich eine Entität mit zwei Feldern, die auf eindeutige Vokabulare verweisen.
Nachrichten: - Tag (Entitätsreferenz) - Kategorie (Entitätsreferenz)
Wenn ich nach einer dieser Referenzen frage, erhalte ich Ergebnisse, aber wenn ich beide abfrage (ein UND-Filter), erhalte ich keine Ergebnisse. Ich habe es jetzt dreifach überprüft und es gibt Entitäten, die sowohl das Tag als auch die Kategorie enthalten, die ich abfrage.
Handelt es sich um einen Benutzerfehler oder einen Drupal-Fehler?
$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();
BEARBEITEN: Ich habe eine Problemumgehung gefunden, indem ich den Rohwert anstelle von entity.value abgefragt habe. Dies ist jedoch eine unerwünschte Situation
$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();