Как мне использовать 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();
Другие вопросы по тегам