tp6基础知识:访问不存在控制器及不存在控制器方法的处理
作者:Alpha时间:2021-07-16 阅读数:3502 +人阅读
默认情况下,我们访问一个不存在的方法,非调试模式下,框架会给我们报错:
这里的报错信息“页面错误!请稍后再试~”是在项目根目录下:config/app.php文件中设置的。
修改参数:
// 显示错误信息'show_error_msg' => false,
改为:
// 显示错误信息'show_error_msg' => true,
此时会给我们展示一个相对详细的报错提示,告诉我们是哪里出错了。
想要展示非常详细的报错信息,可以将系统下.env配置文件调试模式打开:
将APP_DEBUG 修改为true。
我们测试的控制器Demo是继承了BaseController类的,在这个父类里面新建下面方法:
/** * @param $name * @param $arguments * 异常处理方法,凡是继承了base控制器的类,访问类不存在的方法时,系统都会走到这里 */public function __call($name, $arguments){ // TODO: Implement __call() method. dump($name); dump($arguments);}
这时再访问不存在的方法就会走到这里,页面报错提示:
访问不存在的控制器
访问不存在的控制器,系统同样会报错:
处理方法:在该应用控制器目录(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); }}
再次访问一个不存在的控制器,报错提示界面如下:
本站所有文章、数据、图片均来自互联网,一切版权均归源网站或源作者所有。
如果侵犯了你的权益请来信告知我们删除。邮箱:595397166@qq.com