1. 程式人生 > >控制器不存在:app\admin\controller\Admin的排查步驟

控制器不存在:app\admin\controller\Admin的排查步驟

作為學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;一行的不要有大寫出現。
找不到控制器