Laravel Query Builder - странное преобразование имен столбцов - PullRequest
1 голос
/ 03 октября 2019

Я пытаюсь выяснить, почему запросы DB :: raw () отправляются в нижнем регистре?

Query = DB::('table_name')->select(['is_read as isRead'])->get();
Result = [{ isRead: true }]

Но когда я делаю raw, его преобразование в нижний регистр

Query = DB::('table_name')->select(DB::raw('is_read as isRead'))->get();
Result = [{ isread: true }]

У меня есть причина использовать DB raw, поэтому мне нужно разобраться с этим.

1 Ответ

0 голосов
/ 03 октября 2019

Я не могу воспроизвести проблему, о которой вы упомянули ... Какую версию Laravel вы используете?

Например, если я выполню следующее:

DB::table('users')->select(DB::raw('is_read as isRead'))->get();

Iполучит ошибку:

Освещение / База данных / QueryException с сообщением 'SQLSTATE [42S22]: Столбец не найден: 1054 Неизвестный столбец' is_read 'в' списке полей '(SQL: выберите is_read as isRead fromusers) '

Это нормально, потому что в моей таблице users нет столбца is_read. Тем не менее, вы можете увидеть в ошибке, что isRead не преобразуется в нижний регистр.

Возможно, вы можете использовать selectRaw вместо:

DB::table('table_name')->selectRaw('is_read as isRead')->get();

Запрос будетбыть:

select is_read as isRead from `table_name`

В противном случае, не могли бы вы обновить свой вопрос, чтобы предоставить больше информации о том, как воспроизвести, чтобы ваша проблема с использованием заглавных букв.

...