Apa gunanya addExpressionFieldToSelect atas addFieldToSelect?

9

Saya belajar Magento dan saya tidak begitu mengerti apa gunanya addExpressionFieldToSelectover addFieldToSelect? Saya belum menemukan jawabannya di mana pun dalam bacaan saya. Sejauh yang saya tahu, sepertinya menulis ulang nama bidang - tetapi hanya jika Anda memasukkan array dengan penulisan ulang. Mengapa Anda tidak bisa melakukan ini dengan addFieldToSelect di tempat pertama, jika Anda tahu bidang apa yang harus ditulis ulang?

sadq3377
sumber

Jawaban:

11

Di addExpressionFieldToSelect(), Anda bisa mengirimkan Zend_Db_Exprinstance dengan ekspresi SQL arbitrer.

Jadi misalnya, ini dimungkinkan dengan addExpressionFieldToSelect(), tetapi tidak dengan addFieldToSelect():

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

dan hasil dalam kueri SQL dengan

SELECT UPPER(name) as name_in_upper_case FROM ...

Pengganti untuk nama bidang hanya gula sintaksis di atas.

Fabian Schmengler
sumber