À quoi sert addExpressionFieldToSelect par rapport à addFieldToSelect?

9

J'étudie Magento et je ne comprends pas vraiment à quoi sert addExpressionFieldToSelectOver addFieldToSelect? Je n'ai trouvé la réponse nulle part dans ma lecture. Pour autant que je sache, cela semble être la réécriture des noms de champs - mais seulement si vous passez dans un tableau avec la réécriture. Pourquoi ne pourriez-vous pas simplement faire cela avec addFieldToSelect en premier lieu, si vous savez comment le champ doit être réécrit?

sadq3377
la source

Réponses:

11

Dans addExpressionFieldToSelect(), vous pouvez passer une Zend_Db_Exprinstance avec une expression SQL arbitraire.

Ainsi, par exemple, cela est possible avec addExpressionFieldToSelect(), mais pas avec addFieldToSelect():

$collection->addExpressionFieldToSelect(
    'name_in_upper_case',
    new Zend_Db_Expr('UPPER(name)'),
    []
);

et entraîne une requête SQL avec

SELECT UPPER(name) as name_in_upper_case FROM ...

Les espaces réservés pour les noms de champs sont juste du sucre syntaxique en haut.

Fabian Schmengler
la source