我得到了流行的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:..\application\third_party\MX\Router.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
但它是ci 2.0.3版本而不是ci 2.2.2
解决方案3(最好)
如果您将ci 2.0.3中相应位置的预配置版本ci 2.0.3(上面的链接)中的核心文件(MY_Loader和MY_Router)和第三方文件夹(MX)放置在它可以正常工作.
标签:php,codeigniter,codeigniter-hmvc
来源: https://codeday.me/bug/20190727/1558510.html