Jakie jest zastosowanie addExpressionFieldToSelect w porównaniu z addFieldToSelect?


9

Uczę Magento i naprawdę nie rozumiem, co jest stosowanie addExpressionFieldToSelectover addFieldToSelect? Nigdzie nie znalazłem odpowiedzi w swoim czytaniu. O ile mi wiadomo, wydaje się, że przepisuje nazwy pól - ale tylko jeśli przekażesz tablicę z przepisaniem. Dlaczego po prostu nie możesz tego zrobić za pomocą addFieldToSelect, jeśli wiesz, jak pole powinno zostać przepisane?

Odpowiedzi:


11

W addExpressionFieldToSelect()można przekazać Zend_Db_Exprinstancję z dowolnym wyrażeniem SQL.

Na przykład jest to możliwe addExpressionFieldToSelect(), ale nie z addFieldToSelect():

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

i powoduje zapytanie SQL z

SELECT UPPER(name) as name_in_upper_case FROM ...

Symbolami zastępczymi dla nazw pól są po prostu cukier syntaktyczny na górze.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.