就是修改thinkphp的源码中的Library/Db/Driver.class.php文件,把
PDO::ATTR_CASE =>PDO::CASE_LOWER 改为 PDO::ATTR_CASE =>PDO::CASE_NATURAL,
或者在配置文件里面增加
DB_PARAMS’=> array(\PDO::ATTR_CASE =>\PDO::CASE_NATURAL) 这一句。
第一次使用的时候这种解决方法果然可以,但是做另外一个项目的时候却始终不生效,无奈,百度了半天,找到一个方法,因为thinkphp执行的时候默认会把大写转换成小写,所以我们找到它的源码不让它转换就行。
修改Common/functions.php里面的parse_name函数源码为:
function parse_name($name, $type=0) {
/* if ($type) {
return ucfirst(preg_replace_callback('/_([a-zA-Z])/', function($match){return strtoupper($match[1])}, $name))
} else {
//这里会将数据库表名里的大写转换为 _小写,修改成不转换
return strtolower(trim(preg_replace("/[A-Z]/", "_\\0", $name), "_"))
}*/
return $name
}
其中注释掉的是原来的,未注释是新增的。
修改Library/Think/Model.class.php里面的getTableName函数:
//$this->trueTableName= strtolower($tableName)//这里会将表名转换成小写,修改成不转换
$this->trueTableName= $tableName
修改其中一句,这样就可以解决数据库字段名大写的问题。
一、调用方法。1、调用当前控制器的test方法
1)、使用面向对象的技术
echo $this->test()
echo self::test()
echo Index::test()
2)、使用系统方法
echo action('test')
2、调用User控制器下的index方法
1)、命名空间
$model=new \app\index\controller\User
echo $model->index()
2)、使用系统方法
echo action('User/index')
3)、调用后台模块下Index控制器index方法
a、命名空间
$model=new \app\admin\controller\Index
echo $model->index()
b、使用系统方法
echo action('admin/Index/index')
二、执行流程。
1、入口文件(C:\AppServ\www\tp5\public\index.php)
作用:
1)定义目录常量
2)加载框架引导目录
2、加载框架的引导文件(C:\AppServ\www\tp5\thinkphp\start.php)
作用:
1) 引导基础文件
2) 对应用进行运转
3、加载框架的基础引导文件(C:\AppServ\www\tp5\thinkphp\base.php)
作用:
1) 加载系统常量
2) 引入loader类 (C:\AppServ\www\tp5\thinkphp\library\think\loader.php)
3) 引入环境变量
4) 注册自动记载机制
5) 注册异常处理机制(C:\AppServ\www\tp5\thinkphp\library\think\Error.php)
6) 记载惯例配置(C:\AppServ\www\tp5\thinkphp\convention.php)
4、运行应用(C:\AppServ\www\tp5\thinkphp\library\think\App.php) 下的run方法
1)、第一步: 加载当前控制器中 initCommon() 方法
2)、第二步: 加载当前控制器中 init() 方法
a、加载各种配置文件
b、加载公共文件
c、加载语言包
3)、第三步: 设置时区
4)、第四步: 加载当前控制器 routeCheck() 方法 路由检测
5)、第五步: 调用控制器中exec方法
根据用户请求进行分发处理
6)、第六步: 根据不同请求类型记载对应文件 module方法
加载到对应的控制器和对应方法
5、响应输出
用户看到的所有界面就加载出来了
thinkphp5.0
不好意思,能点进来看一下嘛,真的能领金币······
芯悦社
广告
JavaScript的异步 *** 作
128阅读·0评论·0点赞
2020年12月15日
php定时自动运行thinkphp方法(含停止)
1370阅读·0评论·0点赞
2017年4月20日
tp5跨控制器调用方法
936阅读·0评论·0点赞
2021年8月12日
tp5 跨控制器调用
610阅读·0评论·1点赞
2021年8月12日
php thinkphp5模型类,thinkphp5调用模型的方法
570阅读·0评论·0点赞
2021年5月7日
tp5控制器调用,方法调用
2353阅读·0评论·0点赞
2018年8月3日
好消息!京东特价版搞活动啦~补贴加码真的省钱
京东
广告
在使用tp框架的链式 *** 作的field方法,出现数据库‘找不到列‘的问题
171阅读·1评论·0点赞
2021年3月3日
浅析ThinkPHP框架SQL *** 作链式写法原理
175阅读·0评论·0点赞
2015年8月10日
php调用class文件路径,thinkphp文件处理类Dir.class.php的用法分析
145阅读·0评论·0点赞
2021年3月23日
链式写法php,浅析ThinkPHP框架SQL *** 作链式写法原理
61阅读·0评论·0点赞
2021年4月21日
PHP技巧之链式调用
224阅读·0评论·0点赞
2020年6月12日
thinkphp5 控制器以及方法的调用
1223阅读·0评论·1点赞
2019年8月12日
tp5下自定义类,not found
1.2W阅读·6评论·2点赞
2017年6月23日
tp5中调用一些类的静态方法前面加\
3755阅读·0评论·1点赞
2017年7月13日
tp5怎么跨控制器调用别的方法
6105阅读·0评论·1点赞
2019年4月8日
thinkphp 输出变量使用函数处理
778阅读·0评论·0点赞
2016年8月23日
TP5行为扩展(钩子函数)
1.7W阅读·0评论·0点赞
2017年3月31日
TP5.1 调用request方法
3137阅读·0评论·0点赞
2018年12月7日
TP5调用模型内自定义方法
3294阅读·0评论·0点赞
2019年3月28日
去首页
看看更多热门内容
评论1
ctotalk
赞
very good
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)