Dans mon cas d'utilisation, j'ai une entité qui a deux champs qui font référence à des vocabulaires uniques.
Actualités: - tag (référence d'entité) - catégorie (référence d'entité)
Si j'interroge sur l'une de ces références, j'obtiens des résultats, mais lorsque j'interroge les deux (un filtre AND), je n'obtiens aucun résultat. Je l'ai vérifié maintenant et il existe des entités qui contiennent à la fois la balise et la catégorie que j'interroge.
S'agit-il d'une erreur utilisateur ou d'un bug Drupal?
$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();
EDIT: J'ai trouvé une solution de contournement en interrogeant la valeur brute au lieu de entity.value. Il s'agit d'une situation non souhaitable cependant
$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();