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

[已解决] 在控制器里的构造方法中有没办法可以获取到要访问的方...

[复制链接]
发表于 2013-11-26 17:57:51 | 显示全部楼层 |阅读模式
本帖最后由 303076060 于 2013-11-28 15:52 编辑

在控制器里的构造方法中
有没办法可以获取到将要被执行的方法?

譬如要访问以下URL
http://localhost/ci/index.php/welcome/listuser

要访问控制器welcome里的listuser方法

我想在构造函数里预先判断listuer是否存在

评分

参与人数 1威望 -1 收起 理由
Hex -1 违反版规:字体太大

查看全部评分

发表于 2013-11-27 09:15:04 | 显示全部楼层
public function _remap($method, $params = array())
{
    $method = 'process_'.$method;
    if (method_exists($this, $method))
    {
        return call_user_func_array(array($this, $method), $params);
    }
    show_404();
}
详见:
http://codeigniter.org.cn/user_guide/general/controllers.html
发表于 2013-11-27 09:22:57 | 显示全部楼层
如果listuser方法不存在不会解析到welcome控制器吧, 你可以通过 $this->router->fetch_method(); 来获取当前action。
 楼主| 发表于 2013-11-27 10:41:01 | 显示全部楼层
因為愛 发表于 2013-11-27 09:15
public function _remap($method, $params = array())
{
    $method = 'process_'.$method;

谢谢!这个方法可行。

 楼主| 发表于 2013-11-27 10:42:26 | 显示全部楼层
Bobby 发表于 2013-11-27 09:22
如果listuser方法不存在不会解析到welcome控制器吧, 你可以通过 $this->router->fetch_method(); 来获取当 ...

谢谢!!这个方法正适合。。

PS:话说这个$this->router->fetch_method();方法,在手册里找不到的?

发表于 2013-12-13 11:58:35 | 显示全部楼层
$GLOBALS['class'] $GLOBALS['method']  就是类和方法啊....跟一下代码,就出来了..
 楼主| 发表于 2013-12-16 16:18:10 | 显示全部楼层
loadinger 发表于 2013-12-13 11:58
$GLOBALS['class'] $GLOBALS['method']  就是类和方法啊....跟一下代码,就出来了..

感谢!!

本版积分规则