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,也时候就是走的空控制器了
声明
本人博客的所有东西,部分源于网络书籍和视频,其他的是个人的理解感悟,经过自己整理撰写成博客。
本人博客均只用于个人学习、复习,不作为商业用途,如有侵权,请联系我修改或删除。
联系邮箱:itlaowen@163.com