Как мне использовать raw select в Eloquent?
Мой SQL выглядит примерно так:
SELECT
NAME,
PLACE,
ETC,
format(((sum((AMOUNT * U_PRICE)) - ((sum((AMOUNT * U_PRICE)) * 20) / 100)) * 1.18),2) AS TOTAL_PRICE
FROM
THE_TABLE
И мой красноречивый запрос:
theTable::select(
'NAME',
'PLACE',
'ETC',
'format(((sum((AMOUNT * U_PRICE)) - ((sum((AMOUNT * U_PRICE)) * 20) / 100)) * 1.18),2) AS TOTAL_PRICE'
)
->get();
Но это не работает, потому что Eloquent интерпретирует это как select name, place, etc, format sum from the_table
,
У меня есть трейд для использования DB::raw
но тогда он говорит, что не ожидал объекта.
theTable::select(
'NAME',
'PLACE',
'ETC',
DB::raw('format(((sum((AMOUNT * U_PRICE)) - ((sum((AMOUNT * U_PRICE)) * 20) / 100)) * 1.18),2) AS TOTAL_PRICE')
)
->get();
Итак, как я могу использовать необработанный оператор SELECT в Eloquent?
1 ответ
Используйте этот способ
DB::table('THE_TABLE')
->select(DB::raw('
NAME,
PLACE,
ETC,
format(((sum((AMOUNT * U_PRICE)) - ((sum((AMOUNT * U_PRICE)) * 20) / 100)) * 1.18),2) AS TOTAL_PRICE
'))
->get();