logo

Types de blocs supplémentaires (EBT) – Nouvelle expérience de Layout Builder❗

Types de blocs supplémentaires (EBT) – types de blocs stylisés et personnalisables : diaporamas, onglets, cartes, accordéons et bien d’autres. Paramètres intégrés pour l’arrière-plan, la boîte DOM, les plugins JavaScript. Découvrez dès aujourd’hui le futur de la création de mises en page.

Démo des modules EBT Télécharger les modules EBT

❗Types de paragraphes supplémentaires (EPT) – Nouvelle expérience Paragraphes

Types de paragraphes supplémentaires (EPT) – ensemble de modules basé sur les paragraphes analogiques.

Démo des modules EPT Télécharger les modules EPT

Défilement
05/07/2025, by Ivan

Pour grouper par un champ donné, utilisez la méthode groupBy().

$query->groupBy('uid');

Le code ci-dessus indique à la requête de grouper par le champ uid. Notez que le nom du champ doit ici être un alias, créé par les méthodes addField() ou addExpression(), donc dans la plupart des cas, vous voudrez utiliser la valeur retournée par ces méthodes pour garantir que l’alias correct est utilisé.

Pour obtenir le nombre de lignes groupées par un champ, par exemple uid, vous pouvez faire ce qui suit :

$query->addExpression('count(uid)', 'uid_node_count');

Pour grouper par plusieurs champs, appelez simplement groupBy() plusieurs fois dans l’ordre souhaité.

Having

Il est possible d’ajouter une condition sur des valeurs agrégées.

$query->having('COUNT(uid) >= :matches', [':matches' => $limit]);

Dans cet exemple, seuls les cas où le nombre d’identifiants uid est supérieur ou égal à $limit seront trouvés. Notez que le premier paramètre de having n’est pas filtré avant d’être envoyé à la base de données, donc les valeurs personnalisées doivent être passées via le second paramètre.

Exemples de groupBy et having

Le code suivant compte le nombre de nœuds par UID :

$query = $connection->select('node', 'n')
  ->fields('n', ['uid']);
$query->addExpression('count(uid)', 'uid_node_count');
$query->groupBy("n.uid");
$query->execute();

Le bloc de code suivant reprend l’exemple précédent de comptage des nœuds par uid et limite les résultats aux uids ayant au moins 2 enregistrements.

$query = $connection->select('node', 'n')
    ->fields('n',['uid']);
$query->addExpression('count(uid)', 'uid_node_count');
$query->groupBy("n.uid");
$query->having('COUNT(uid) >= :matches', [':matches' => 2]);
$results = $query->execute();