控制器不存在:app\admin\controller\Admin的排查步驟
阿新 • • 發佈:2019-01-26
作為學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];
這是照著官網視訊一步步來的,但是發覺居然人家視訊裡可以訪問,但是我的不可以,很是鬱悶,各種百度,也沒有很好的解決方法。於是放著,最後隨著學習的深入,才發覺thinkphp裡面很多功能是通過配置檔案進行控制的,然後想到,不能訪問admin模組,是不是配置檔案中寫死了呢,結果一看,果然是配置檔案寫死了,廢話不多說,一下直接貼出改好的配置檔案:
// 預設模組名
'default_module' => '' ,
// 禁止訪問模組
'deny_module_list' => ['common'],
// 預設控制器名
'default_controller' => '',
// 預設操作名
'default_action' => '',
// 預設驗證器
'default_validate' => '',
// 預設的空控制器名
'empty_controller' => 'Error',
// 操作方法字尾
'action_suffix' => '',
// 自動搜尋控制器
'controller_auto_search' => true,
改了之後,如果還是找不到該方法,而且確實定義了該控制器,如圖,發覺是admin檔名沒有首字母大寫,thinkphp認為不合法,所以找不到,另外還需要注意的是,namespace app\admin\controller;
一行的不要有大寫出現。