kun*_*nal 11 php laravel laravel-5.2
我想显示页面500内部服务器错误页面.当用户在项目中出现语法错误时,任何人都可以帮助我吗?如果我在语法上做了一些错误,我想展示那个特殊的刀片.
Add*_*Ltd 15
您需要创建处理程序以捕获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);
}
Run Code Online (Sandbox Code Playgroud)
查看
参见resources/views/errors/500.blade.php.如果不存在则创建它.
您可以从Laravel 5自定义错误视图中获取500的更详细或其他方式
在您的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);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
25633 次 |
| 最近记录: |