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

[核心代码 Core] 获取当前控制器所在子目录路径的扩展

[复制链接]
发表于 2015-11-8 18:25:39 | 显示全部楼层 |阅读模式
本帖最后由 berowe 于 2015-11-8 18:29 编辑

今天做权限控制的时候,由于项目使用了控制器子目录,需要用到所在子目录的路径。

官方手册没有找到相关的方法,就自己顺手写了一个扩展方法,如果框架本身有这个功能,还希望各位大神告知。

还有就是,扩展核心框架有没有办法使用helper函数呢????我尝试导入helper但是失败了。

该方法会返回控制器之前的路径,如:Admin/Home/index,Admin/Test/Abc/index
分别返回:Admin和Admin/Test

PHP复制代码
 
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class MY_Router extends CI_Router {
    //尝试获取子目录
    public function getSubDir() {
        $string = $this->class . '/' . $this->method;
        $res_uri = $_SERVER['REQUEST_URI'] . '/' . $this->class . '/' . $this->method . '/';
        $diff = array_filter(array_diff(explode('/', $res_uri),explode('/', $string)));
        $subdir = implode('/', $diff);
        if (empty($subdir)) {
            return false;
        } else {
            return $subdir;
        }
    }
}
 
复制代码


本版积分规则