ekingluo 发表于 2011-9-22 10:24:51

如何获取当前的控制器及方法

本帖最后由 ekingluo 于 2011-9-22 10:26 编辑

我刚在论坛里面搜过了,以前有人提过同样的问题,回答一般都是查看uri类,也就是获取uri的segments片段,一个问题是:如果url是一般模式,uri类也可以正常解析成片段吗,这个我可以自己试试……还没试……还有一个问题是:我的控制器中有子文件夹,也有的没有,可是我要在所有的控制器中都要获取当前的控制器和方法,这样我在每个控制器中要获取的方法又不一样了。我研究的一个方法是:
$RT= & load_class('Router');
$controller=$RT->fetch_class;
$method=$RT->fetch_method;
有没有直接可以获取到的方法?不用像这样再加载router类;
我要解决的问题是一个简单的权限判断,如果用户没有访问此控制器的权限就提示无权限的,新手请赐教,我想要一个好的解决办法。

jeongee 发表于 2011-9-22 10:47:40

本帖最后由 jeongee 于 2011-9-22 10:47 编辑

不管带不带文件夹,不管用没用到路由,不管。。。
在ci中用下面的肯定获取到的是控制器和方法名
那就是:
controller:$this->uri->rsegment(1);
method:$this->uri->rsegment(2);

ekingluo 发表于 2011-9-22 10:56:56

jeongee 发表于 2011-9-22 10:47 static/image/common/back.gif
不管带不带文件夹,不管用没用到路由,不管。。。
在ci中用下面的肯定获取到的是控制器和方法名
那就是:


我现在url是http://localhost/codeIgniter/index.php?d=admin&c=login&m=index;
配置:$config['enable_query_strings'] = TRUE;
无法获取$this->uri->rsegments,$this->uri->rsegments,

jeongee 发表于 2011-9-22 11:00:08

ekingluo 发表于 2011-9-22 10:56 static/image/common/back.gif
我现在url是http://localhost/codeIgniter/index.php?d=admin&c=login&m=index;
配置:$config['enable_ ...

这个我真没试过,从没用过这种方式的路由,用ci原因之1就是冲着URI分段的,呵呵
我马上测试以下

ekingluo 发表于 2011-9-22 11:03:51

jeongee 发表于 2011-9-22 11:00 static/image/common/back.gif
这个我真没试过,从没用过这种方式的路由,用ci原因之1就是冲着URI分段的,呵呵
我马上测试以下 ...

嗯,还是感谢,我先用笨方法做了,如果有好的,以后再改

jeongee 发表于 2011-9-22 11:08:01

ekingluo 发表于 2011-9-22 11:03 static/image/common/back.gif
嗯,还是感谢,我先用笨方法做了,如果有好的,以后再改

初步测试
使用$config['enable_query_strings'] = TRUE;这种方式后,ci的路由等都没用了,所以这种方式下
controller = $this->input->get('c') ? $this->input->get('c') : '你设置的默认控制器' ;
method = $this->input->get('m') ? $this->input->get('m') : 'index' ;

ekingluo 发表于 2011-9-22 11:12:19

jeongee 发表于 2011-9-22 11:08 static/image/common/back.gif
初步测试
使用$config['enable_query_strings'] = TRUE;这种方式后,ci的路由等都没用了,所以这种方式下 ...

谢谢,马上使用看看

appleboy 发表于 2011-9-22 15:07:56

或者是可以透過 $this->input->get_post() 他會先取 post 後取 get 資料

http://codeigniter.org.tw/user_guide/libraries/input.html

absola 发表于 2012-8-26 01:38:36

jeongee 发表于 2011-9-22 10:47 static/image/common/back.gif
不管带不带文件夹,不管用没用到路由,不管。。。
在ci中用下面的肯定获取到的是控制器和方法名
那就是:


如果有目录了,就不行了吧

jeongee 发表于 2012-8-26 09:29:49

absola 发表于 2012-8-26 01:38 static/image/common/back.gif
如果有目录了,就不行了吧

可行
页: [1] 2
查看完整版本: 如何获取当前的控制器及方法