用户
 找回密码
 入住 CI 中国社区
搜索
楼主: Hex
收起左侧

[库 Library] [1.7.2]让控制器可以支持多级子目录的 Router 类库

    [复制链接]
发表于 2010-8-25 16:05:57 | 显示全部楼层
之后怎么访问目录,能否详细说一下,我这里刚才测试不通过啊
发表于 2010-8-25 16:26:02 | 显示全部楼层
正确的用法
将文件放到system\libraries目录下
之后再控制器中调入
$this->load->library('MY_Router');  

可以访问,但是提示错误,这个路由类是2006年的,能否有老大做一个最新的出来?
A PHP Error was encountered
Severity: Notice

Message: Undefined offset: 0

Filename: libraries/MY_Router.php

Line Number: 53

A PHP Error was encountered
Severity: Notice

Message: Undefined offset: 0

Filename: libraries/MY_Router.php

Line Number: 59

A PHP Error was encountered
Severity: Notice

Message: Undefined offset: 0

Filename: libraries/MY_Router.php

Line Number: 70
 楼主| 发表于 2010-8-25 17:55:37 | 显示全部楼层
回复 12# 37213721


    你的使用方法不对,直接放到 application/libraries 目录,然后不需要装载,因为这个类是系统自动装载的。
发表于 2010-9-19 08:44:54 | 显示全部楼层
非常感谢,原来这么简单就能做到支持多级子目录,原来还以为这是一个大的缺点呢。还好来这里问问。

果然是多问多看,收益良多。
发表于 2010-9-19 17:08:07 | 显示全部楼层
本帖最后由 zhang91yun 于 2010-9-19 17:46 编辑

哈哈,是自己的问题,目录名搞错了

真的可以的,大家小心点目录名
发表于 2010-12-21 23:53:19 | 显示全部楼层
老大,原生的是不是最多只能一级目录,
如:application/controler/admin/user.php
 楼主| 发表于 2010-12-22 23:16:30 | 显示全部楼层
回复 16# benfeng


    是的
发表于 2010-12-27 16:40:50 | 显示全部楼层
不好用。我修改了下。
71行     if(!is_dir(APPPATH.'/controllers/'.implode('/', $tempDir)))
修改为 if(!is_dir(APPPATH.'controllers/'.implode('/', $tempDir)))
追加下面重载函数
    /**
     * rewrite
     *  Set the directory name
     *
     * @access  public
     * @param   string
     * @return  void
     */
    function set_directory($dir)
    {
        $this->directory  = $dir.'/';
    }
发表于 2010-12-30 15:11:54 | 显示全部楼层
这个是很不错的
发表于 2010-12-30 15:15:11 | 显示全部楼层
楼主的这个在 1.7.3下不能用的  要重载以下方法才可以用的
        function set_directory($dir)
        {
                $this->directory = str_replace(array('.'), '', $dir).'/';
        }

本版积分规则