0

我将如何删除 Laravel 默认使用的冗长的堆栈跟踪错误?(我知道它使用的是“点火”)

我发现的一些资源没有帮助:

  • 该线程仅提及如何完全禁用错误报告
  • 当我在此处提到render()的类似方法中编写任何内容时,我只会得到错误 500 而没有任何输出。app/Exceptions/Handler.php
  • 这个线程中的人甚至建议编写自己的 Laravel 引导应用程序而不是使用默认的应用程序,这会破坏 Laravel 框架语义,但这简直是疯了。

我还尝试通过发布点火配置文件来查看点火的配置值

php artisan vendor:publish --provider="Facade\Ignition\IgnitionServiceProvider" --tag="ignition-config"

但是该文件无需配置,您唯一能做的就是隐藏错误中的“共享”消息。

我只想要一个带有文件/行/错误、没有堆栈跟踪或没有 html 标记的简单经典 php 错误页面。错误页面使得在除 Web 浏览器之外的任何其他设备中调试输出变得非常困难。

4

1 回答 1

1

只需覆盖render()应用程序异常处理程序中的方法。根据基类中的注释,此方法必须返回一个响应对象。

public function render($request, \Throwable $e)
{
    return response()->view("exception", ["exception" => $e]);
}

然后让您的刀片视图看起来像您想要的那样。

<!doctype html>
<title>Exception</title>
<body>
<p>
Exception of type <code>{{ get_class($exception) }}</code>
thrown in <code>{{ $exception->getFile() }}</code>
on line <code>{{ $exception->getLine() }}</code>.
</p>
</body>
于 2022-01-27T18:27:33.493 回答