Какая польза от addExpressionFieldToSelect над addFieldToSelect?

9

Я изучаю Magento, и я действительно не понимаю, какая польза от addExpressionFieldToSelectover addFieldToSelect? Я не нашел ответа нигде в моем чтении. Насколько я могу судить, кажется, что это перезаписывает имена полей - но только если вы передаете массив с перезаписью. Почему вы не можете просто сделать это с помощью addFieldToSelect, если вы знаете, как следует переписать поле?

sadq3377
источник

Ответы:

11

В addExpressionFieldToSelect(), вы можете передать Zend_Db_Exprэкземпляр с произвольным выражением SQL.

Так, например, это возможно с addExpressionFieldToSelect(), но не с addFieldToSelect():

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

и приводит к запросу SQL с

SELECT UPPER(name) as name_in_upper_case FROM ...

Заполнители для имен полей - это просто синтаксический сахар сверху.

Фабиан Шменглер
источник