codeigniter 模块化扩展 - MX_Router::_set_default_controller() 的访问级别必须是 public(如 class CI_Router)
code igniter Modular Extensions - Access level to MX_Router::_set_default_controller() must be public (as in class CI_Router)
我从
安装了流行的模块化扩展 - 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:..\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 not empty 周围以绕过这个 属性 就像这样
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(最佳)
如果您将核心文件(MY_Loader 和 MY_Router)和预配置版本 ci 2.0.3 中的第三方文件夹 (MX) (link 上面)在 ci 2.2.2 中的相应位置内它会工作得很好。
我从
安装了流行的模块化扩展 - HMVChttps://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:..\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 not empty 周围以绕过这个 属性 就像这样
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(最佳)
如果您将核心文件(MY_Loader 和 MY_Router)和预配置版本 ci 2.0.3 中的第三方文件夹 (MX) (link 上面)在 ci 2.2.2 中的相应位置内它会工作得很好。