解决thinkCMF6总是显示404 Not Found而不是显示报错信息的方法

(37) 2023-09-28 16:12

Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说解决thinkCMF6总是显示404 Not Found而不是显示报错信息的方法,希望能够帮助你!!!。

要解决的问题如下图:

解决thinkCMF6总是显示404 Not Found而不是显示报错信息的方法_https://bianchenghao6.com/blog__第1张

404 Not Found

解决后的效果,举例如下:

解决thinkCMF6总是显示404 Not Found而不是显示报错信息的方法_https://bianchenghao6.com/blog__第2张

解决thinkCMF6总是显示404 Not Found而不是显示报错信息的方法_https://bianchenghao6.com/blog__第3张

解决thinkCMF6总是显示404 Not Found而不是显示报错信息的方法_https://bianchenghao6.com/blog__第4张

解决办法:

假设根目录是D:\project\thinkcmf6。

修改文件

D:\project\thinkcmf6\vendor\topthink\framework\src\think\exception\Handle.php

解决thinkCMF6总是显示404 Not Found而不是显示报错信息的方法_https://bianchenghao6.com/blog__第5张

原因解析:上图第211行

if ($exception instanceof HttpException) {
    $statusCode = $exception->getStatusCode();//值为404
    $response->header($exception->getHeaders());
}

导致第218行的$statusCode的值要么是404要么是500。

修改代码的核心要点:强制响应码为默认值200。

要追加的的代码可以是:

//不太推荐添加这一行if开头的代码,
if (true === $this->app->isDebug()){
  //重点就是这一行代码,强制响应码为默认值200
    $statusCode = $response->getCode();
}

如果.env文件中的APP_DEBUG=false,则仍然显示404 Not Found。

如果想要显示得更加友好一些,如下图

解决thinkCMF6总是显示404 Not Found而不是显示报错信息的方法_https://bianchenghao6.com/blog__第6张

要追加的的代码可以是:(推荐)

//重点就是这一行代码,强制响应码为默认值200
$statusCode = $response->getCode();

或者是:(推荐)

return $response;

好了,去试试吧,为了愉快地进行开发业务。

今天的分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

上一篇

已是最后文章

下一篇

已是最新文章

发表回复