如何在 laravel 5.2 中显示 500 个内部服务器错误页面?

新手上路,请多包涵

我想显示页面 500 内部服务器错误 页面。当用户在项目中出现语法错误时,任何人都可以帮助我吗?如果我在语法上犯了一些错误,我想展示那个特定的刀片。

原文由 kunal 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 384
2 个回答

您需要创建处理程序来捕获 FatalErrorExceptions 在您的处理程序中,如下代码所示:

处理 程序在 app/Exceptions/Handler.php

 public function render($request, Exception $e)
{

    // 404 page when a model is not found
    if ($e instanceof ModelNotFoundException) {
        return response()->view('errors.404', [], 404);
    }

    // custom error message
    if ($e instanceof \ErrorException) {
        return response()->view('errors.500', [], 500);
    } else {
        return parent::render($request, $e);
    }

    return parent::render($request, $e);
}

查看 请参阅 resources/views/errors/500.blade.php 。如果不存在则创建它。

您可以从 Laravel 5 custom error view for 500 获得更详细的信息或其他方式

原文由 AddWeb Solution Pvt Ltd 发布,翻译遵循 CC BY-SA 3.0 许可协议

在您的 resources/views/errors 文件夹中创建一个名为 500.blade.php 的文件。

Laravel 可以轻松显示各种 HTTP 状态代码的自定义错误页面。例如,如果您希望为 500 个 HTTP 状态代码自定义错误页面,请创建一个 resources/views/errors/500.blade.php 。该文件将针对您的应用程序生成的所有 500 个错误提供。

问题是 Laravel 只会为 HttpException 的实例的异常自动呈现错误页面。不幸的是,当您的服务器抛出错误(方法不存在、变量未定义等)时,它实际上抛出一个 FatalErrorException 。因此,它未被捕获,并滴入 SymfonyDisplayer() 要么给你跟踪(调试真)或丑陋的单行“哎呀,看起来出了点问题”(调试假)。

为了解决这个问题,你已经将它添加到你的 render 方法到 app/Exceptions/Handler

 # /app/Exceptions/Handler.php

# use Symfony\Component\Debug\Exception\FlattenException;

# public function render($request, Exception $e)

$exception = FlattenException::create($e);
$statusCode = $exception->getStatusCode($exception);

if ($statusCode === 404 or $statusCode === 500) {
    return response()->view('errors.' . $statusCode, [], $statusCode);
}

文档

原文由 Amit Gupta 发布,翻译遵循 CC BY-SA 3.0 许可协议

推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏