如何自定义错误页面吗
<一个类=”doc-action content-edit" href="https://github.com/symfony/symfony-docs/edit/6.0/controller/error_pages.rst"> 编辑该页面一个>警告:你浏览的文档欧宝体育电话<一个href=”//www.oldmanjams.com/releases/6.0">欧宝娱乐app下载地址Symfony 6.0一个>,不再维护。
读<一个href=”//www.oldmanjams.com/doc/6.3/controller/error_pages.html">这个页面的更新版本一个>Symf欧宝娱乐app下载地址ony 6.2(当前的稳定版本)。
< /div>error404.html.twig模板位于模板/ /包/ TwigBundle /异常
:
1 2 3 4 5 6 7 8 9 10 11
{# / error404.html模板/包/ TwigBundle /异常。树枝#}{%扩展“base.html。嫩枝' %}{%块身体%}<h1>页面没有找到< /h1><p>所请求的页面无法找到。检出拼写错误或任何URL<一个href=”{{路径(主页)}}”>返回到主页< /一个>。< /p>{%endblock%}
如果你需要它们,TwigErrorRenderer
通过传递一些信息错误模板status_code
和status_text
变量分别存储HTTP状态代码和消息。
提示
你可以自定义一个异常的状态代码实现<一个href=”https://github.com/symfony/symfony/blob/6.0/src/Symfony/Component/HttpKernel/Exception/HttpExceptionInterface.php" class="reference external" title="HttpExceptionInterface”rel="external noopener noreferrer" target="_blank">HttpExceptionInterface一个>和它的要求getStatusCode ()
方法。否则,status_code
将默认为500年
。
< /div>
另外你可以访问异常异常
,例如允许输出使用堆栈跟踪{{例外。traceAsString}}
或访问其他任何对象上的方法。你应该小心,因为这很可能暴露敏感数据。
提示
PHP错误也变成了异常在默认情况下,你还可以访问这些错误使用细节异常
。
< /div>
序列化器组件有一个内置的FlattenException
标准化者(<一个href=”https://github.com/symfony/symfony/blob/6.0/src/Symfony/Component/Serializer/Normalizer/ProblemNormalizer.php" class="reference external" title="ProblemNormalizer”rel="external noopener noreferrer" target="_blank">ProblemNormalizer一个>)和JSON / XML / CSV / YAML编码器。当你的应用程序抛出异常,Symfony可以输出的格式。欧宝娱乐app下载地址如果你想改变输出内容,创建一个新的标准化者支持FlattenException
输入:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21日22日23日24
# src /序列化器/ MyCustomProblemNormalizer.php名称空间应用程序\序列化器;使用欧宝娱乐app下载地址\组件\ErrorHandler\异常\FlattenException;使用欧宝娱乐app下载地址\组件\序列化器\标准化者\NormalizerInterface;类MyCustomProblemNormalizer实现了NormalizerInterface{公共函数正常化(美元异常、字符串美元格式= null,数组美元上下文= []):数组{返回(“内容”= >“这是我的自定义问题标准化者”。,“例外”= > [“消息”= >美元异常- >getMessage (),“代码”= >美元异常- >getStatusCode ()));}公共函数supportsNormalization(美元数据、字符串美元格式= null):bool{返回美元数据运算符FlattenException;}}
framework.error_controller一个>配置选项指向:
- YAML
- XML
- PHP
1 2 3
#配置/包/ framework.yaml框架:error_controller:控制器应用\ \ ErrorController::显示
1 2 3 4 5 6 7 8 9 10 11 12
< !——配置/包/框架。xml - - >< ?xml version = " 1.0 " encoding = " utf - 8 " ? ><容器xmlns=“http://欧宝娱乐app下载地址www.oldmanjams.com/schema/dic/services”xmlns: xsi=“http://www.w3.org/2001/XMLSchema-instance”xsi: schemaLocation=“http://欧宝娱乐app下载地址www.oldmanjams.com/schema/dic/services //www.oldmanjams.com/schema/dic/services/services-1.0.xsd”><框架:配置><框架:error-controller>控制器应用\ \ ErrorController::显示< /框架:error-controller>< /框架:配置>< /容器>
1 2 3 4 5 6 7
/ /配置/包/ framework.php使用欧宝娱乐app下载地址\配置\FrameworkConfig;返回静态函数(FrameworkConfig美元框架){/ /……美元框架- >errorController (“App \控制器\ ErrorController:显示”);};
的<一个href=”https://github.com/symfony/symfony/blob/6.0/src/Symfony/Component/HttpKernel/EventListener/ErrorListener.php" class="reference external" title="ErrorListener”rel="external noopener noreferrer" target="_blank">ErrorListener一个>类使用的FrameworkBundle的侦听器kernel.exception
事件创建控制器将发出的请求。此外,控制器将被传递两个参数:
-
异常
-
最初的<一个href=”https://secure.php.net/manual/en/class.throwable.php" class="reference external" title="Throwable”rel="external noopener noreferrer" target="_blank">Throwable一个>实例被处理。
-
日志记录器
-
一个<一个href=”https://github.com/symfony/symfony/blob/6.0/src//Symfony/Component/HttpKernel/Log/DebugLoggerInterface.php" class="reference external" title="DebugLoggerInterface”rel="external noopener noreferrer" target="_blank">DebugLoggerInterface一个>这可能是实例
零
在某些情况下。
提示
的<一个href=”//www.oldmanjams.com/doc/6.0/controller/error_pages.html" class="reference internal">错误页面预览一个>也适用于自己的控制器设置这种方式。
< /div>
1 2 3 4 5 6 7 8 9 10 11
{# / error404.html模板/包/ TwigBundle /异常。树枝#}{%扩展“base.html。嫩枝' %}{%块身体%}<h1>页面没有找到< /h1><p>所请求的页面无法找到。检出拼写错误或任何URL<一个href=”{{路径(主页)}}”>返回到主页< /一个>。< /p>{%endblock%}
TwigErrorRenderer
通过传递一些信息错误模板status_code
和status_text
变量分别存储HTTP状态代码和消息。提示
你可以自定义一个异常的状态代码实现<一个href=”https://github.com/symfony/symfony/blob/6.0/src/Symfony/Component/HttpKernel/Exception/HttpExceptionInterface.php" class="reference external" title="HttpExceptionInterface”rel="external noopener noreferrer" target="_blank">HttpExceptionInterface一个>和它的要求getStatusCode ()
方法。否则,status_code
将默认为500年
。
另外你可以访问异常异常
,例如允许输出使用堆栈跟踪{{例外。traceAsString}}
或访问其他任何对象上的方法。你应该小心,因为这很可能暴露敏感数据。
提示
PHP错误也变成了异常在默认情况下,你还可以访问这些错误使用细节异常
。
序列化器组件有一个内置的FlattenException
标准化者(<一个href=”https://github.com/symfony/symfony/blob/6.0/src/Symfony/Component/Serializer/Normalizer/ProblemNormalizer.php" class="reference external" title="ProblemNormalizer”rel="external noopener noreferrer" target="_blank">ProblemNormalizer一个>)和JSON / XML / CSV / YAML编码器。当你的应用程序抛出异常,Symfony可以输出的格式。欧宝娱乐app下载地址如果你想改变输出内容,创建一个新的标准化者支持FlattenException
输入:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21日22日23日24
# src /序列化器/ MyCustomProblemNormalizer.php名称空间应用程序\序列化器;使用欧宝娱乐app下载地址\组件\ErrorHandler\异常\FlattenException;使用欧宝娱乐app下载地址\组件\序列化器\标准化者\NormalizerInterface;类MyCustomProblemNormalizer实现了NormalizerInterface{公共函数正常化(美元异常、字符串美元格式= null,数组美元上下文= []):数组{返回(“内容”= >“这是我的自定义问题标准化者”。,“例外”= > [“消息”= >美元异常- >getMessage (),“代码”= >美元异常- >getStatusCode ()));}公共函数supportsNormalization(美元数据、字符串美元格式= null):bool{返回美元数据运算符FlattenException;}}
framework.error_controller一个>配置选项指向:
- YAML
- XML
- PHP
1 2 3
#配置/包/ framework.yaml框架:error_controller:控制器应用\ \ ErrorController::显示
1 2 3 4 5 6 7 8 9 10 11 12
< !——配置/包/框架。xml - - >< ?xml version = " 1.0 " encoding = " utf - 8 " ? ><容器xmlns=“http://欧宝娱乐app下载地址www.oldmanjams.com/schema/dic/services”xmlns: xsi=“http://www.w3.org/2001/XMLSchema-instance”xsi: schemaLocation=“http://欧宝娱乐app下载地址www.oldmanjams.com/schema/dic/services //www.oldmanjams.com/schema/dic/services/services-1.0.xsd”><框架:配置><框架:error-controller>控制器应用\ \ ErrorController::显示< /框架:error-controller>< /框架:配置>< /容器>
1 2 3 4 5 6 7
/ /配置/包/ framework.php使用欧宝娱乐app下载地址\配置\FrameworkConfig;返回静态函数(FrameworkConfig美元框架){/ /……美元框架- >errorController (“App \控制器\ ErrorController:显示”);};
的<一个href=”https://github.com/symfony/symfony/blob/6.0/src/Symfony/Component/HttpKernel/EventListener/ErrorListener.php" class="reference external" title="ErrorListener”rel="external noopener noreferrer" target="_blank">ErrorListener一个>类使用的FrameworkBundle的侦听器kernel.exception
事件创建控制器将发出的请求。此外,控制器将被传递两个参数:
-
异常
-
最初的<一个href=”https://secure.php.net/manual/en/class.throwable.php" class="reference external" title="Throwable”rel="external noopener noreferrer" target="_blank">Throwable一个>实例被处理。
-
日志记录器
-
一个<一个href=”https://github.com/symfony/symfony/blob/6.0/src//Symfony/Component/HttpKernel/Log/DebugLoggerInterface.php" class="reference external" title="DebugLoggerInterface”rel="external noopener noreferrer" target="_blank">DebugLoggerInterface一个>这可能是实例
零
在某些情况下。
提示
的<一个href=”//www.oldmanjams.com/doc/6.0/controller/error_pages.html" class="reference internal">错误页面预览一个>也适用于自己的控制器设置这种方式。
< /div>
- YAML
- XML
- PHP
1 2 3
#配置/包/ framework.yaml框架:error_controller:控制器应用\ \ ErrorController::显示
1 2 3 4 5 6 7 8 9 10 11 12
< !——配置/包/框架。xml - - >< ?xml version = " 1.0 " encoding = " utf - 8 " ? ><容器xmlns=“http://欧宝娱乐app下载地址www.oldmanjams.com/schema/dic/services”xmlns: xsi=“http://www.w3.org/2001/XMLSchema-instance”xsi: schemaLocation=“http://欧宝娱乐app下载地址www.oldmanjams.com/schema/dic/services //www.oldmanjams.com/schema/dic/services/services-1.0.xsd”><框架:配置><框架:error-controller>控制器应用\ \ ErrorController::显示< /框架:error-controller>< /框架:配置>< /容器>
1 2 3 4 5 6 7
/ /配置/包/ framework.php使用欧宝娱乐app下载地址\配置\FrameworkConfig;返回静态函数(FrameworkConfig美元框架){/ /……美元框架- >errorController (“App \控制器\ ErrorController:显示”);};
kernel.exception
事件创建控制器将发出的请求。此外,控制器将被传递两个参数:异常
日志记录器
零
在某些情况下。提示
的<一个href=”//www.oldmanjams.com/doc/6.0/controller/error_pages.html" class="reference internal">错误页面预览一个>也适用于自己的控制器设置这种方式。
< /div>