ThinkPHP3.2 中空方法、空控制器和空模組的設定
ThinkPHP3.2 中空方法、空控制器和空模組的設定
1、空方法設定
問題:
當你訪問一個不存在的方法的時候:
如:http://localhost/test/index.php/Home/User/getList
會報如下錯:
:(
非法操作:getList
錯誤位置
FILE: D:\phpStudy\WWW\test\ThinkPHP\Library\Think\Controller.class.php LINE: 170
解決:
只需要在控制器中寫如下方法便OK。
/** * 空操作 */ public function _empty() { $this->error( '很抱歉,您要訪問的頁面不存在!' ); }
2、空控制器設定
問題:
當你訪問一個不存在的控制器的時候:
如:http://localhost/test/index.php/Home/Power/getList
會報如下錯:
:(
無法載入控制器:Power
錯誤位置
FILE: D:\phpStudy\WWW\test\ThinkPHP\Library\Think\App.class.php LINE: 101
解決:
新加一個空控制器、然後將空操作方法放置其中。
新建控制器:EmptyController.class.php 具體程式碼如下: <?php namespace Home\Controller; use Think\Controller; class EmptyController extends Controller { /** * 空操作 */ public function _empty() { $this->error( '很抱歉,您要訪問的頁面不存在!' ); } } ?>
3、空模組設定
問題:
當你訪問一個不存在的模組的時候:
如:http://localhost/test/index.php/Boss/User/getList
會報如下錯:
:(
無法載入模組:Boss
錯誤位置
FILE: D:\phpStudy\WWW\test\ThinkPHP\Library\Think\Dispatcher.class.php LINE: 178
解決:
結合上面的空方法、空控制器。
在公共配置檔案 ( \test\ThinkPHP\Conf\convention.php ) 中新增以下配置: // 允許訪問的模組 'MODULE_ALLOW_LIST'=>array( 'Home','Admin' ), // 預設模組 'DEFAULT_MODULE'=>'Home', // 上面的'DEFAULT_MODULE'很重要 // 因為當你模組名寫錯的時候,tp的基類已經把錯的模組名當成了控制器名,就會變成Home/Boss,也時候就是走的空控制器了