gpt4 book ai didi

php - 如何在 Eloquent 中找回小写的列名?

转载 作者:行者123 更新时间:2023-12-01 22:20:35 24 4
gpt4 key购买 nike

我正在使用一个包含所有大写蛇形列名称的数据库,当我用 Eloquent 方式获取它们时,我会做类似的事情:

    foreach($data as $key => $item){
$data[$key] = array_change_key_case($item);
}

这使得键(即列名)变为小写,但很快就会变得效率低下,因为我也需要像这样嵌套数组:

    foreach($tasks as $key => $task){
foreach($task['users'] as $innerKey => $user){
$task['users'][$innerKey] = array_change_key_case($user);
}
$tasks[$key] = array_change_key_case($task);
}

而且我无法更改数据库。有没有一种方法可以让 Eloquent 返回小写的列名?

最佳答案

您可以在驱动程序级别转换列名 using PDO attributes .为此,请设置您的 Laravel connection options (在 app/config/database.php 中)像这样:

return array(
'connections' => array(
'mysql' => array(
'options' => array(
PDO::ATTR_CASE => PDO::CASE_LOWER,
),
),
)
)

defaultPDO::CASE_NATURAL,这就是为什么您的代码将它们视为数据库存储它们的原因。


更新:如果您使用的是 MySQL,您可以考虑设置 lower_case_table_names = 2 ,它告诉服务器:

If set to 2, table names are stored as given but compared in lowercase. This option also applies to database names and table aliases.

关于php - 如何在 Eloquent 中找回小写的列名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40394276/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com