mirror of
https://gitee.com/fastadminnet/framework.git
synced 2026-07-08 23:52:49 +08:00
模型类增加attrCase属性 用于设置数据表的字段大小写 值和PDO的属性PDO::ATTR_CASE一致,该设置需要和数据库的params参数一起使用才有效
This commit is contained in:
@@ -32,6 +32,8 @@ class Model
|
|||||||
protected $name = '';
|
protected $name = '';
|
||||||
// 数据库名称
|
// 数据库名称
|
||||||
protected $dbName = '';
|
protected $dbName = '';
|
||||||
|
// 数据表字段大小写
|
||||||
|
protected $attrCase = \PDO::CASE_LOWER;
|
||||||
//数据库配置
|
//数据库配置
|
||||||
protected $connection = [];
|
protected $connection = [];
|
||||||
// 数据表名(不包含表前缀)
|
// 数据表名(不包含表前缀)
|
||||||
@@ -96,6 +98,10 @@ class Model
|
|||||||
$this->dbName = $config['db_name'];
|
$this->dbName = $config['db_name'];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (isset($config['attr_case'])) {
|
||||||
|
$this->attrCase = $config['attr_case'];
|
||||||
|
}
|
||||||
|
|
||||||
// 数据库初始化操作
|
// 数据库初始化操作
|
||||||
// 获取数据库操作对象
|
// 获取数据库操作对象
|
||||||
// 当前模型有独立的数据库连接信息
|
// 当前模型有独立的数据库连接信息
|
||||||
@@ -1428,7 +1434,20 @@ class Model
|
|||||||
$guid = md5($tableName);
|
$guid = md5($tableName);
|
||||||
$result = Cache::get($guid);
|
$result = Cache::get($guid);
|
||||||
if (!$result) {
|
if (!$result) {
|
||||||
$info = array_change_key_case($this->db->getFields($tableName));
|
$info = $this->db->getFields($tableName);
|
||||||
|
// 字段大小写转换
|
||||||
|
switch ($this->attrCase) {
|
||||||
|
case \PDO::CASE_LOWER:
|
||||||
|
$info = array_change_key_case($info);
|
||||||
|
break;
|
||||||
|
case \PDO::CASE_UPPER:
|
||||||
|
$info = array_change_key_case($info, CASE_UPPER);
|
||||||
|
break;
|
||||||
|
case \PDO::CASE_NATURAL:
|
||||||
|
default:
|
||||||
|
// 不做转换
|
||||||
|
}
|
||||||
|
|
||||||
$fields = array_keys($info);
|
$fields = array_keys($info);
|
||||||
foreach ($info as $key => $val) {
|
foreach ($info as $key => $val) {
|
||||||
// 记录字段类型
|
// 记录字段类型
|
||||||
|
|||||||
@@ -58,7 +58,6 @@ class Mysql extends Driver
|
|||||||
$info = [];
|
$info = [];
|
||||||
if ($result) {
|
if ($result) {
|
||||||
foreach ($result as $key => $val) {
|
foreach ($result as $key => $val) {
|
||||||
$val = array_change_key_case($val);
|
|
||||||
$info[$val['field']] = [
|
$info[$val['field']] = [
|
||||||
'name' => $val['field'],
|
'name' => $val['field'],
|
||||||
'type' => $val['type'],
|
'type' => $val['type'],
|
||||||
|
|||||||
@@ -111,7 +111,6 @@ class Oracle extends Driver
|
|||||||
$info = [];
|
$info = [];
|
||||||
if ($result) {
|
if ($result) {
|
||||||
foreach ($result as $key => $val) {
|
foreach ($result as $key => $val) {
|
||||||
$val = array_change_key_case($val);
|
|
||||||
$info[$val['column_name']] = [
|
$info[$val['column_name']] = [
|
||||||
'name' => $val['column_name'],
|
'name' => $val['column_name'],
|
||||||
'type' => $val['data_type'],
|
'type' => $val['data_type'],
|
||||||
|
|||||||
@@ -43,7 +43,6 @@ class Sqlite extends Driver
|
|||||||
$info = [];
|
$info = [];
|
||||||
if ($result) {
|
if ($result) {
|
||||||
foreach ($result as $key => $val) {
|
foreach ($result as $key => $val) {
|
||||||
$val = array_change_key_case($val);
|
|
||||||
$info[$val['name']] = [
|
$info[$val['name']] = [
|
||||||
'name' => $val['name'],
|
'name' => $val['name'],
|
||||||
'type' => $val['type'],
|
'type' => $val['type'],
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ use think\Config;
|
|||||||
use think\Debug;
|
use think\Debug;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 页面Trace调试 需要设置 'response_exit' => false 才能生效
|
* 页面Trace调试
|
||||||
*/
|
*/
|
||||||
class Trace
|
class Trace
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user