thinkphp 3.2.1 多层控制器 【求助】

浏览:2170 发布日期:2014/03/15 分类:求助交流 关键字: 多层控制器 RL_ROUTE_RULES
问题描述:
在开启URL_ROUTER_ON的情况下,根据手册设置了多层控制器,
路径: Home/Controller/News/NewsReadController.class.php
访问url: /home/news/read/1.html
无法找到action.

读了源码情况如下:
Dispatcher.class.php 185行:if('' != $_SERVER['PATH_INFO'] && (!C('URL_ROUTER_ON') ||  !Route::check()) ){   // 检测路由规则前面条件不成了进入 Route::check();
有2种情况:
1.Route::check(); 在config的 URL_ROUTE_RULES 中若没配置,此url无法找到action。
2.Route::check(); 若匹配到了,执行parseRule 时,返回都为true。导致Dispatcher不进行控制器层次判断。不执行以下代码if(C('CONTROLLER_LEVEL')>1){// 控制器层次
    $_GET[$varController]   =   implode('/',array_slice($paths,0,C('CONTROLLER_LEVEL')));
    $paths  =   array_slice($paths, C('CONTROLLER_LEVEL'));
}else{
    $_GET[$varController]   =   array_shift($paths);
}
也找不到action。

求如何破。。。是我RL_ROUTE_RULES没设置对么?





附件 QQ截图20140315123929.png ( 3.74 KB 下载:5 次 )

最佳答案
评论( 相关
后面还有条评论,点击查看>>