ThinkPHP3.2 中空方法、空控制器和空模塊的設置

ThinkPHP3.2 中空方法、空控制器和空模塊的設置

一、空方法設置
問題:

當你訪問一個不存在的方法的時候:
如: http://localhost/test/index.php/Home/User/getList
會報以下錯:php

:(

非法操做:getList

錯誤位置

FILE: D:\phpStudy\WWW\test\ThinkPHP\Library\Think\Controller.class.php  LINE: 170thinkphp

解決:

只須要在控制器中寫以下方法便OK。this

/**
 * 空操做
 */

public function _empty()
{
    $this->error( '很抱歉,您要訪問的頁面不存在!' );
}
二、空控制器設置
問題:

當你訪問一個不存在的控制器的時候:
如: http://localhost/test/index.php/Home/Power/getList
會報以下錯:spa

:(

沒法加載控制器:Power

錯誤位置

FILE: D:\phpStudy\WWW\test\ThinkPHP\Library\Think\App.class.php  LINE: 101code

解決:

新加一個空控制器、而後將空操做方法放置其中。get

新建控制器:EmptyController.class.php
具體代碼以下:
<?php
namespace Home\Controller;
use Think\Controller;
class EmptyController extends Controller
{
    /**
     * 空操做
     */

    public function _empty()
    {
        $this->error( '很抱歉,您要訪問的頁面不存在!' );
    }
}
?>
三、空模塊設置
問題:

當你訪問一個不存在的模塊的時候:
如: http://localhost/test/index.php/Boss/User/getList
會報以下錯:io

:(

沒法加載模塊:Boss

錯誤位置

FILE: D:\phpStudy\WWW\test\ThinkPHP\Library\Think\Dispatcher.class.php  LINE: 178function

解決:

結合上面的空方法、空控制器。class

在公共配置文件 ( \test\ThinkPHP\Conf\convention.php ) 中添加如下配置:

// 容許訪問的模塊
'MODULE_ALLOW_LIST'    =>    array( 'Home','Admin' ),
// 默認模塊
'DEFAULT_MODULE'       =>    'Home',
// 上面的'DEFAULT_MODULE'  很重要
// 由於當你模塊名寫錯的時候,tp的基類已經把錯的模塊名當成了控制器名,就會變成Home/Boss,也時候就是走的空控制器了
相關文章
相關標籤/搜索