¿Cuál es el uso de addExpressionFieldToSelect sobre addFieldToSelect?

9

Estoy estudiando Magento y yo no entiendo muy bien lo que es el uso de addExpressionFieldToSelectmás addFieldToSelect? No he encontrado la respuesta en ninguna parte de mi lectura. Por lo que puedo decir, parece estar reescribiendo nombres de campo, pero solo si pasa en una matriz con la reescritura. ¿Por qué no podrías simplemente hacer esto con addFieldToSelect en primer lugar, si sabes cómo debería reescribirse el campo?

sadq3377
fuente

Respuestas:

11

En addExpressionFieldToSelect(), puede pasar una Zend_Db_Exprinstancia con una expresión SQL arbitraria.

Entonces, por ejemplo, esto es posible con addExpressionFieldToSelect(), pero no con addFieldToSelect():

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

y da como resultado una consulta SQL con

SELECT UPPER(name) as name_in_upper_case FROM ...

Los marcadores de posición para los nombres de campo son simplemente azúcar sintáctico en la parte superior.

Fabian Schmengler
fuente