J'ai un type de noeud "groupe" avec un champ de référence d'entité "field_things" qui peut référencer zéro ou plusieurs noeuds "chose". Je voudrais utiliser entityQuery pour trouver tous les "groupes" qui ont exactement une valeur pour field_things, et cette valeur est une "chose" spécifique.
Je ne peux pas dire à partir des documents comment combiner ces deux exigences.
Il semble donc que entityQuery()
ne peut pas faire cela, mais entityQueryAggregate()
le peut. Voici un exemple qui atteint l'objectif du message d'origine:
$thing_id = 101;
$q = \Drupal::entityQueryAggregate('node')
->condition('type', 'group')
->condition('field_things', $thing_id)
->groupBy('nid')
->conditionAggregate('field_things', 'COUNT', 1);
$res = $q->execute();
L'exécution de dpm($res)
affichera:
Array
(
[0] => Array
(
[nid] => 85
[field_things_count] => 1
)
[1] => Array
(
[nid] => 33
[field_things_count] => 1
)
[2] => Array
(
[nid] => 57
[field_things_count] => 1
)
[3] => Array
(
[nid] => 54
[field_things_count] => 1
)
)