用户
 找回密码
 入住 CI 中国社区
搜索
查看: 7636|回复: 12
收起左侧

[已解决] 如何获取Controller路径

[复制链接]
发表于 2009-9-25 13:27:31 | 显示全部楼层 |阅读模式
比如有controller 为:
class  Test extends Controller
{

    function Test() {
       parent::Controller();
    }

   function   hello($a,$b,$c){
    ....
   }

}

如何能获取到hello的uri

仅仅为当前的hello的   test/hello/
而不是test/hello/a/b/c
即使传了参数$a,$b,$c,也只返回当前的test/hello/
uri_string()是不行的,
请指教.
发表于 2009-9-25 14:32:29 | 显示全部楼层
CI 应该没有这种方法,uri_string() 办不到的只能自己扩展了。
我想是应该在 router 里存储一些信息,因为所有控制器都是从 router 里进行分发的。然后在通过一个方法把刚才路由的结果返回给控制器(也许 router 类里就有这种方法,呵呵)
发表于 2009-9-25 14:46:57 | 显示全部楼层
$this->uri->rsegments会返回一个数组,其中就包括了控制名名和方法名
发表于 2009-9-25 15:56:48 | 显示全部楼层
ls正解,rsegments包含index.php之后的全部seg
发表于 2009-9-25 16:03:02 | 显示全部楼层
楼主只要控制器,参数不要,那个不好判断吧。
发表于 2009-9-25 16:10:33 | 显示全部楼层
$this->uri->rsegments[0]得到的就是控制器名,$this->uri->rsegments[1]就是方法名
发表于 2009-9-25 16:26:29 | 显示全部楼层
不一定吧,如果有目录呢?如果扩展了 router 有多级目录呢?呵呵
发表于 2009-9-25 16:32:01 | 显示全部楼层
->router->fetch_class()获得控制器名
发表于 2009-9-25 16:48:54 | 显示全部楼层
楼上正解
发表于 2009-9-26 22:41:05 | 显示全部楼层
支持楼上

本版积分规则