位置:首页 > PHP > ThinkPHP >

thinkphp6处理不存在方法或不存在的控制器无效请求的方法

字号+ 作者:micloud 来源:www.seoalphas.com 2021-02-20 14:41 浏览量:2675

在tp6中,如果访问不存在的方法或控制器的时候,会有默认的报错提示,如果想修改默认的报错提示,需要怎么处理呢?

1、控制器方法不存在

因为在tp6中,每个方法都要继承BaseController这个基类,我们在这里处理即可。

打开BaseController文件,添加如下方法:

public function __call($name, $arguments)
    {
        // TODO: Implement __call() method.
//        dump($name);
//        dump($arguments);
        $result = [
            'status'  => 0,
            'message' => '找不到该方法',
            'result'  => null
        ];
        return json($result,400);
    }

此时再访问一个不存在的方法,就会返回我们指定的错误信息。这个方法是PHP自带的魔术方法,可以输出方法参数查看具体的输出值。


2、控制器不存在情况

如果控制器不存在,我们可以在该应用下的controller目录创建一个Error类,这是tp为我们准备好的,访问的控制器不存在会自动访问这个控制器。

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


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

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

    ThinkPHP5控制器验证使用方法

    浏览次数:7479

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

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

    浏览次数:7249

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

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

    浏览次数:5939

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

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

    浏览次数:3900

网友点评
评论区域