如果设置URL_CASE_INSENSITIVE 为 true ,既不区分url大小写,同时开启了APP_FILE_CASE 区分文件名大小写 为 true,那例如访问控制器 xxx.com/test/addtest,对应的控制器方法是
public function addTest(){
//....
$this -> display();
}
那默认的模版路径 "TEMPLATE_NAME" 是实际上是根据url中的m参数来定义的,所以如果控制器中的方法名像上面是addTest,访问的是addtest,那模版命名应该是 tpl/addtest.html 而不是 tpl/addTest.html,又再次感觉到别扭,所以小改了下,(3.13版本)
将Lib/Core/App.class.php 中第128行代码,
定义C('TEMPLATE_NAME') 那一段,
移到136行(获取$method//执行当前操作)下面,
然后改为:
C('TEMPLATE_NAME',THEME_PATH.MODULE_NAME.C('TMPL_FILE_DEPR').$method->name.C('TMPL_TEMPLATE_SUFFIX'));
也就是将原有从url中解析的$action替换为$method->name;这样一来默认的模版命名就由控制器方法名来规定了,岂不是更规范?
测试后不会影响路由的设置。
最佳答案
