当我的PHP
脚本出错时,我会看到一个Whoops
包含错误所有详细信息的漂亮页面。
但是,有时我需要查看出错位置的输出(例如,在包含 100 万个项目的循环中,但其中只有 1 个出现问题,我需要查看哪个项目)。我在每个项目之后刷新输出,因此页面后面的Whoops
页面显示页面底部的最后一个项目。
有没有办法隐藏Whoops
页面(暂时)?
使用Chrome DevTools
,我现在隐藏了DIV
' Whoops_container
' 类,但如果有更优雅的方式会很好。
编辑解释:很抱歉,一些stackoverflow mods 删除了我的帖子,因为他们认为我只是用链接回答。这是一个短期解决方案,如果链接过期,则解决方案过期,需要以不同的方式解决(如果包含 PR,则答案已过时且问题也已过时,如果 PR 不被接受,我将创建一个 fork并且无论如何都需要更新链接)。
但是因为我知道这种糟糕的行为有多烦人,所以我再次添加了答案:
我创建了一个添加“隐藏按钮”的拉取请求。您可以在此处查看必要的更改:https ://github.com/filp/whoops/pull/579/files
这可能会有所帮助,直到他们整合它,或者如果他们决定不整合它。
以下是从拉取请求中提取的更改,为链接添加一些价值:
src/Whoops/Resources/views/header.html.php(在另一个按钮下面添加这个(“复制”)
<button id="hide-error" class="rightButton" title="Hide error message" onclick="document.getElementsByClassName('Whoops')[0].style.display = 'none';">
HIDE
</button>
src/Whoops/Resources/views/header.html.php(在最后添加)
.rightButton {
cursor: pointer;
border: 0;
opacity: .8;
background: none;
color: rgba(255, 255, 255, 0.1);
box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.1);
border-radius: 3px;
outline: none !important;
}
.rightButton:hover {
box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.3);
color: rgba(255, 255, 255, 0.3);
}
如果错误很常见,您可以在全局范围内忽略该错误。对于示例 ValidationException 或 ModelNotFoundException,您可以忽略该异常。
在 Laravel 的 Handler.php 中有一个名为 $dontReport 的数组。您可以在此处注册您的异常类并在全球范围内导入您的异常。
protected $dontReport = [
\Illuminate\Database\Eloquent\ModelNotFoundException::class,
\Illuminate\Validation\ValidationException::class,
];
您还可以将自定义输出代码写入渲染函数以处理您的异常。
祝你好运!