¿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?

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.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.