暂时隐藏Laravel 5.4中的Whoops页面?

时间:2018-01-19 17:30:20

标签: laravel-5 whoops

当我的PHP脚本出错时,我会看到一个很好的Whoops页面,其中包含错误的所有详细信息。

但是,有时我需要查看输出错误的位置(例如,在包含100万个项目的循环中,但只有1个产生问题,我需要查看哪个项目)。我在每个项目后刷新输出,因此Whoops页面后面的页面显示页面底部的最后一项。

有没有办法隐藏Whoops页面(暂时)?

使用Chrome DevTools,我现在隐藏了具有“DIV”类的Whoops_container,但如果有更优雅的方式会很好。

2 个答案:

答案 0 :(得分:0)

编辑解释:对不起有些stackoverflow mods删除了我的帖子,因为他们认为我刚回答了一个链接。这是一个短时间的解决方案,如果链接过期,解决方案过期,需要以不同的方式解决(如果包含PR,答案已经过时,问题也已过时,如果不接受PR,我将创建一个分支并且无论如何都需要更新链接)。

但是因为我知道这个Whoops行为有多烦人,所以我再次添加了答案:

我创建了一个添加“隐藏按钮”的拉取请求。您可以在此处查看必要的更改:https://github.com/filp/whoops/pull/579/files

这可能会有所帮助,直到他们整合它,或者如果他们决定不整合它。

以下是从pull请求中提取的更改,以便为链接添加一些值:

src / Whoops / Resources / views / header.html.php (在另一个按钮下方添加此项(“COPY”)

<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);
  }

答案 1 :(得分:0)

如果错误很常见,您可以全局转发。对于ValidationException或ModelNotFoundException示例,您可以忽略该异常。

在Laravel的Handler.php中有一个名为$ dontReport的数组。您可以在此注册您的异常类,并在全球范围内处理您的异常。

protected $dontReport = [
    \Illuminate\Database\Eloquent\ModelNotFoundException::class,
    \Illuminate\Validation\ValidationException::class,
];

您还可以将自定义输出代码编写到渲染函数中以处理异常。

祝你好运!