Expressions
Le constructeur de requêtes Select supporte l’utilisation d’expressions dans la liste des champs. Des exemples d’expressions incluent « double de l’âge », « nombre de tous les noms » et une sous-chaîne du champ titre. Gardez à l’esprit que beaucoup d’expressions peuvent utiliser des fonctions SQL, et que toutes les fonctions SQL ne sont pas standardisées sur toutes les bases de données. Le développeur du module doit s’assurer que seules des expressions compatibles avec les bases de données sont utilisées. (Voir la liste des fonctions et opérateurs).
Pour ajouter une expression à la requête, utilisez la méthode addExpression().
$count_alias = $query->addExpression('COUNT(uid)', 'uid_count'); $count_alias = $query->addExpression('created - :offset', 'timestamp', array(':offset' => 3600));
La première ligne ci-dessus ajoutera « COUNT(uid) AS uid_count » à la requête. Le deuxième paramètre est l’alias du champ. Dans le cas rare où l’alias est déjà utilisé, un nouveau sera généré, et la valeur retournée par addExpression() sera l’alias utilisé. Si aucun alias n’est précisé, une valeur par défaut « expression » (ou expression_2, expression_3, etc.) sera générée.
Le troisième paramètre optionnel est un tableau associatif des valeurs des placeholders qui sont utilisées dans l’expression.
Notez que certaines expressions SQL peuvent ne pas fonctionner si elles ne sont pas accompagnées d’une clause GROUP BY ajoutée via $query->groupBy(). Le développeur doit s’assurer que la requête générée est valide.