Laravel错误处理程序在FileViewFinder.php中查找视图

时间:2014-12-31 12:23:19

标签: php laravel error-handling http-status-code-404

尝试为Laravel实现一个自定义错误处理程序,这样当它被推送时,404的等等比正常的红色和黑色屏幕更好。

我发现这在某种意义上有效:

App::error(function(Exception $exception, $code)
{
  $pathInfo = Request::getPathInfo();
  $message = $exception->getMessage() ?: 'Exception';
  Log::error("$code - $message @ $pathInfo\r\n$exception");

  if (Config::get('app.debug')) {
    //return;
  }

  switch ($code)
  {
    case 403:
        return Response::view( 'error/403', compact('message'), 403);

    case 500:
        return Response::view('error/500', compact('message'), 500);

    default:
        return Response::view('error/404', compact('message'), $code);
  }
});

但是当点击404页面等时会返回:

Error in exception handler: View [error/404] not found. in /Applications/MAMP/htdocs/buildsanctuary/vendor/laravel/framework/src/Illuminate/View/FileViewFinder.php:146

如果我将视图更改为其中一个自定义视图/尝试在Response ::视图中创建路径。 e.g。

Response::view('app/views/error404')

我收到同样的错误。

或者,如果我更改,则将行更改为:

View::make('a view here')

然后我得到一个白色的屏幕。任何想法如何将这些错误链接到我的视图中的文件夹?

感谢。

1 个答案:

答案 0 :(得分:0)

我从来没有使用Response::view(),但是如果它像我所假设的View::make()那样工作,它会期待点符号并且它已经知道了视图文件夹的位置

Response::view('errors.404')