No meu caso de uso, tenho uma entidade que possui dois campos que se referem a vocabulários exclusivos.
Notícias: - tag (referência da entidade) - categoria (referência da entidade)
Se eu consultar uma dessas referências, obtenho resultados, no entanto, quando consulta ambos (um filtro AND), não obtive resultados. Eu o verifiquei três vezes até agora e existem entidades que contêm a tag e a categoria que estou consultando.
Isso é um erro do usuário ou um erro do 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: Encontrei uma solução alternativa consultando o valor bruto em vez de entity.value. Esta é uma situação não desejável, embora
$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();