it-swarm.com.de

EntityQuery-Gruppierung nach Klausel

Mit der EntityQuery-API versuche ich, der Abfrage eine group by-Klausel hinzuzufügen. Es scheint jedoch nicht, dass eine existiert. Die EntityQuery-API verfügt nicht über eine groupBy () -Methode.

Aktueller Code:

$nodes = Drupal::entityQuery('node')
    ->condition('type', 'thing')
    ->condition('field_num_1', 'value', '=')
    ->condition('field_num_2', 'value', '=')
    ->range(0, 10)
    ->sort('title', 'ASC')
    ->execute();

Idealer Code:

$nodes = Drupal::entityQuery('node')
    ->condition('type', 'thing')
    ->condition('field_num_1', 'value', '=')
    ->condition('field_num_2', 'value', '=')
    ->groupBy('field_num_3')
    ->range(0, 10)
    ->sort('title', 'ASC')
    ->execute();
5
kknoer

Für aggregierte Abfragen müssen Sie die separate Methode von https://www.drupal.org/node/1918702 verwenden:

$query = Drupal::entityQueryAggregate('node');

$result = $query
  ->groupBy('type')
  ->aggregate('nid', 'COUNT')
  ->execute();

groupBY () alleine macht nichts. Die normale Entitätsabfrage gibt Entitäts-IDs zurück. Immer. Es macht keinen Sinn, nach einem Feld oder etwas anderem zu gruppieren. Nur in Kombination mit Aggregat.

6
Berdir