Php Laravel查询生成器奇怪的列名转换

Php Laravel查询生成器奇怪的列名转换,php,laravel,query-builder,Php,Laravel,Query Builder,我试图弄清楚为什么DB::raw()查询会以小写形式发送 Query = DB::('table_name')->select(['is_read as isRead'])->get(); Result = [{ isRead: true }] 但当我把它转换成小写时 Query = DB::('table_name')->select(DB::raw('is_read as isRead'))->get(); Result = [{ isread: true }]

我试图弄清楚为什么DB::raw()查询会以小写形式发送

Query = DB::('table_name')->select(['is_read as isRead'])->get();
Result = [{ isRead: true }]
但当我把它转换成小写时

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

我有理由使用DB raw,所以我真的需要弄清楚这件事。

我无法重现您提到的问题。。。您使用的是哪个版本的Laravel

例如,如果我运行以下命令:

DB::table('users')->select(DB::raw('is_read as isRead'))->get();
我会得到一个错误:

Illumb/Database/QueryException,消息为“SQLSTATE[42S22]:未找到列:1054未知列”在“字段列表”中被读取(SQL:select被读取为isRead from
用户
)'

这是正常的,因为我的
users
表中没有
is\u read
列。但是,您可以在错误中看到,
isRead
未转换为小写

或许您可以使用:

问题是:

select is_read as isRead from `table_name`

否则,您能否更新您的问题,以提供有关如何复制的更多信息,从而使您的问题具有大写字母。

我无法复制您提到的问题。。。您使用的是哪个版本的Laravel

例如,如果我运行以下命令:

DB::table('users')->select(DB::raw('is_read as isRead'))->get();
我会得到一个错误:

Illumb/Database/QueryException,消息为“SQLSTATE[42S22]:未找到列:1054未知列”在“字段列表”中被读取(SQL:select被读取为isRead from
用户
)'

这是正常的,因为我的
users
表中没有
is\u read
列。但是,您可以在错误中看到,
isRead
未转换为小写

或许您可以使用:

问题是:

select is_read as isRead from `table_name`

否则,您是否可以更新您的问题,以提供更多有关如何复制的信息,从而使您的问题具有大写形式。

代码实际上类似于此DB::table('notifications')->select(DB::raw('CASE WHEN notifications.created_at不为NULL,则为true,否则为false END as isRead')->get()@rckyclsI仍然会得到以下查询:
选择CASE WHEN notifications.created\u at不为NULL,然后为true,否则为false,结束为isRead from notifications
。您在哪里看到小写结果?代码实际上类似于以下DB::table('notifications')->select(DB::raw('CASE WHEN notifications.created_at不为NULL,则为true,否则为false END as isRead')->get()@rckyclsI仍然会得到以下查询:
选择CASE WHEN notifications.created\u at不为NULL,然后为true,否则为false,结束为isRead from notifications
。您在哪里看到小写结果?