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__生成问题 |