作为学thinkphp的小白,真是走哪哪掉坑,做啥啥不顺,先贴错误代码
[0] HttpException in App.php line 574
控制器不存在:app\admin\controller\Admin
try {
$instance = Loader::controller(
$controller,
$config['url_controller_layer'],
$config['controller_suffix'],
$config['empty_controller']
);
} catch (ClassNotFoundException $e) {
throw new HttpException(404, 'controller not exists:' . $e->getClass());
}
// 获取当前操作名
$action = $actionName . $config['action_suffix'];
$vars = [];
if (is_callable([$instance, $action])) {
// 执行操作方法
$call = [$instance, $action];
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
这是照着官网视频一步步来的,但是发觉居然人家视频里可以访问,但是我的不可以,很是郁闷,各种百度,也没有很好的解决方法。于是放着,最后随着学习的深入,才发觉thinkphp里面很多功能是通过配置文件进行控制的,然后想到,不能访问admin模块,是不是配置文件中写死了呢,结果一看,果然是配置文件写死了,废话不多说,一下直接贴出改好的配置文件:
// 默认模块名
'default_module' => '',
// 禁止访问模块
'deny_module_list' => ['common'],
// 默认控制器名
'default_controller' => '',
// 默认操作名
'default_action' => '',
// 默认验证器
'default_validate' => '',
// 默认的空控制器名
'empty_controller' => 'Error',
// 操作方法后缀
'action_suffix' => '',
// 自动搜索控制器
'controller_auto_search' => true,
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
改了之后,如果还是找不到该方法,而且确实定义了该控制器,如图,发觉是admin文件名没有首字母大写,thinkphp认为不合法,所以找不到,另外还需要注意的是,namespace app\admin\controller;
一行的不要有大写出现。