【问题标题】:Laravel error handler looking for views in FileViewFinder.phpLaravel 错误处理程序在 FileViewFinder.php 中寻找视图
【发布时间】:2015-02-27 13:01:19
【问题描述】:

尝试为 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::view 中创建路径。例如

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

我收到同样的错误。

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

View::make('a view here')

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

谢谢。

【问题讨论】:

  • views 目录中的结构是什么样的?
  • root>app>views>errors>404.php
  • errorS Response::view('errors/404', ...) 应该可以工作

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


【解决方案1】:

我从未使用过Response::view(),但如果它像View::make() 那样工作,我假设它确实如此,它需要点符号并且它已经知道视图文件夹的位置。

Response::view('errors.404')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-03-29
    • 2015-09-24
    • 1970-01-01
    • 2018-03-02
    • 1970-01-01
    • 2011-04-11
    • 2016-08-18
    • 1970-01-01
    相关资源
    最近更新 更多