lucky9805 发表于 2009-9-25 13:27:31

如何获取Controller路径

比如有controller 为:
classTest 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()是不行的,
请指教.

Hex 发表于 2009-9-25 14:32:29

CI 应该没有这种方法,uri_string() 办不到的只能自己扩展了。
我想是应该在 router 里存储一些信息,因为所有控制器都是从 router 里进行分发的。然后在通过一个方法把刚才路由的结果返回给控制器(也许 router 类里就有这种方法,呵呵)

yang257099 发表于 2009-9-25 14:46:57

$this->uri->rsegments会返回一个数组,其中就包括了控制名名和方法名

visvoy 发表于 2009-9-25 15:56:48

ls正解,rsegments包含index.php之后的全部seg

Hex 发表于 2009-9-25 16:03:02

楼主只要控制器,参数不要,那个不好判断吧。

yang257099 发表于 2009-9-25 16:10:33

$this->uri->rsegments得到的就是控制器名,$this->uri->rsegments就是方法名

Hex 发表于 2009-9-25 16:26:29

不一定吧,如果有目录呢?如果扩展了 router 有多级目录呢?呵呵

visvoy 发表于 2009-9-25 16:32:01

->router->fetch_class()获得控制器名

yang257099 发表于 2009-9-25 16:48:54

楼上正解

ouok 发表于 2009-9-26 22:41:05

支持楼上
页: [1] 2
查看完整版本: 如何获取Controller路径