位置:首页 > PHP > ThinkPHP >

tp6基础知识:访问不存在控制器及不存在控制器方法的处理

字号+ 作者:micloud 来源:www.seoalphas.com 2021-07-16 08:59 浏览量:2341

默认情况下,我们访问一个不存在的方法,非调试模式下,框架会给我们报错:

image.png

这里的报错信息“页面错误!请稍后再试~”是在项目根目录下:config/app.php文件中设置的。

image.png

修改参数:

// 显示错误信息'show_error_msg'   => false,

改为:

// 显示错误信息'show_error_msg'   => true,

image.png

此时会给我们展示一个相对详细的报错提示,告诉我们是哪里出错了。

想要展示非常详细的报错信息,可以将系统下.env配置文件调试模式打开:

image.png

将APP_DEBUG 修改为true。


我们测试的控制器Demo是继承了BaseController类的,在这个父类里面新建下面方法:

/** * @param $name * @param $arguments * 异常处理方法,凡是继承了base控制器的类,访问类不存在的方法时,系统都会走到这里 */public function __call($name, $arguments){    // TODO: Implement __call() method.    dump($name);    dump($arguments);}

这时再访问不存在的方法就会走到这里,页面报错提示:

image.png

访问不存在的控制器

访问不存在的控制器,系统同样会报错:

image.png

处理方法:在该应用控制器目录(app/controller),创建一个Error.php控制器,控制器名字是系统指定的,不能是其他的。

namespace app\controller;class Error{    public function __call($name, $arguments)    {        // TODO: Implement __call() method.        $result = [            'code' => 0,            'message' => '找不到该控制器',            'data' =>[]        ];        return json($result,404);    }}

再次访问一个不存在的控制器,报错提示界面如下:

image.png

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • ThinkPHP5控制器验证使用方法

    ThinkPHP5控制器验证使用方法

    浏览次数:7473

  • thinkPHP时间周期查询:今日、昨日、上周、本月范围查询

    thinkPHP时间周期查询:今日、昨日、上周、本月范围查询

    浏览次数:7219

  • thinkphp5.1+配置文件结构及获取

    thinkphp5.1+配置文件结构及获取

    浏览次数:5928

  • thinkphp5部署于Linux中nginx多站点解决方案

    thinkphp5部署于Linux中nginx多站点解决方案

    浏览次数:3895

网友点评
评论区域