PHP7中文手册2018 带注释 最新chm版
1、环境说明
ThinkPHP版本3.1.3
配置打开URL_CASE_INSENSITIVE=>true,即URL忽略大小写
2、产生问题
如果项目模块名称存在这种“ABC”结构的类型,如“MyHome”,那么根据
/ThinkPHP/lib/core/Dispatcher.class.php
第228行的注释,项目模块可以通过“my_home”或“MyHome”访问到,但是在模板中如果使用“__URL__”这个参数的话
模块名称会被系统生成为“myhome”的方式
这样通过使用“__URL__”来访问模块时就报无法找到模块的错误
同样根据上面“Dispatcher.class.php”文件的注释,我们会知道ThinkPHP会将模块名称首字母大写(ucfirst)
这样链接访问地址实际是“Myhome”,但是项目中并没有Myhome这个模块
3、处理办法
将“__URL__”的生成方式改为多个单词间以“_”划分,即“MyHome”生成为“my_home”
/ThinkPHP/lib/core/Dispatcher.class.php
|
1
2
3
4
5
|
if(defined('GROUP_NAME')) { define('__URL__',!empty($domainModule)?__GROUP__.$depr : __GROUP__.$depr.( C('URL_CASE_INSENSITIVE') ? strtolower($moduleName) : $moduleName ) );}else{ define('__URL__',!empty($domainModule)?__APP__.'/' : __APP__.'/'.( C('URL_CASE_INSENSITIVE') ? strtolower($moduleName) : $moduleName) );} |
第183行至188行的代码,修改为:
|
1
2
3
4
5
6
7
8
|
-->
转载请注明:谷谷点程序 » URL_CASE_INSENSITIVE的__URL__生成问题 |