加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 代码点火器模块化扩展 – MX_Router :: _ set_default_co

发布时间:2020-12-13 21:54:02 所属栏目:PHP教程 来源:网络整理
导读:我得到了流行的Modular Extensions – HMVC安装 https://bitbucket.org/wiredesignz/codeigniter-modular-extensions-hmvc 并使用codeigniter设置它2.2.2但是当一切都工作正常时,我得到了这个错误 Access level to MX_Router::_set_default_controller() mus
我得到了流行的Modular Extensions – HMVC安装

https://bitbucket.org/wiredesignz/codeigniter-modular-extensions-hmvc

并使用codeigniter设置它2.2.2但是当一切都工作正常时,我得到了这个错误

Access level to MX_Router::_set_default_controller() must be public (as in class CI_Router) in C:..applicationthird_partyMXRouter.php on line 241

解决方法

解决方案1

我必须在Router.php中更改几个方法可见性,因此我将以下方法从protected更改为public以使其得到修复

_set_default_controller()
_set_request()
_set_default_controller()

它几乎可以工作,但现在我得到一个警告,高于熟悉的欢迎使用CodeIgniter消息

Message: Undefined property: MY_Router::$translate_uri_dashes

所以我把这个属性包裹起来,如果不是空的话就像这样绕过这个属性

if(!empty($this->translate_uri_dashes))
        {
            if ($this->translate_uri_dashes === TRUE)
            {
                foreach(range(0,2) as $v)
                {
                    isset($segments[$v]) && $segments[$v] = str_replace('-','_',$segments[$v]);
                }
            }
        }

现在它有效!

解决方案2

有一个可以从中下载的HMVC-ci

http://lab.clearpixel.com.au/2011/10/modularise-your-codeigniter-2-applications-with-modular-extensions-%E2%80%93-hmvc/

但它是ci 2.0.3版本而不是ci 2.2.2

解决方案3(最好)

如果您将ci 2.0.3中相应位置的预配置版本ci 2.0.3(上面的链接)中的核心文件(MY_Loader和MY_Router)和第三方文件夹(MX)放置在它可以正常工作.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读