最近在学习CI框架,遇到了一个问题就是默认访问的控制器,CI框架中默认访问的控制器是welcome控制器,但是在项目开发中需要指定默认访问的网站的某个模块下的某个控制器,在网上查到说直接在配置文件中修改就可以,但是始终不行,最终在网上查到,好像是在3.1.4以上已经不支持修改访问模块下的控制器,需要自己修改系统文件中的内容:
将
if (empty($this->default_controller)) {
show_error('Unable to determine what should be displayed. A default route has not been specified in the routing file.');
}
后面的内容删除掉然后添加一下代码
$path_arr = explode('/', trim($this->default_controller, '/'));
$class = ucfirst($path_arr[1]);
$method = isset($path_arr[2]) ? $path_arr[2]: 'index';
if (file_exists(APPPATH . 'controllers/' . $this->directory . $path_arr[0]. '/' . $class . '.php'))
{
$this->directory .= $path_arr[0]. '/';
}
ps:需要在 [system/Router.php] - _set_default_controller()系统文件中添加此代码,以修复CI框架中不能修改默认访问子目录下的控制器,需将return去掉
例如:你想默认访问的控制器是admin/Login
则修改config目录下的routes.php中的
$route['default_controller']
$route['default_controller'] = 'admin/login';
这样就可以将默认访问的控制器修改成功