在 TP3.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,也时候就是走的空控制器了
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值