【问题标题】:Symfony 3: Customize the template for @Secutity annotation exceptionsSymfony 3:自定义 @Secutity 注解异常的模板
【发布时间】:2017-05-11 23:17:47
【问题描述】:

我想为 @Security("has_role('CUSTOM_ADMIN')") 上抛出的错误自定义 twig 模板

我已经看过 a similar issue here 但对于 Symfony 2。

我认为 @Security 注释逻辑绕过了 Twig 模板覆盖,因为我已经按照官方文档中关于 customizing error pages 的说明进行操作,但是这些模板文件被忽略了,我只得到了默认的 Symfony 异常页面:

Expression "has_role('CUSTOM_ADMIN')" denied access.

我错过了什么吗?

【问题讨论】:

  • 当您在开发环境中时,Symfony 会显示大异常页面,而不是您闪亮的新定制错误页面。你确定在产品环境中测试它吗? symfony.com/doc/current/controller/…
  • @yceruto 这行得通,请添加您的评论作为答案,以便我可以接受

标签: php symfony twig


【解决方案1】:

当您在开发环境中时,Symfony 会显示大的 exception 页面,而不是您闪亮的新定制错误页面。那么,如何查看它的外观并进行调试呢?

幸运的是,默认的ExceptionController 允许您在开发过程中预览错误页面。

要使用此功能,您需要在 routing_dev.yml 文件中定义如下:

# app/config/routing_dev.yml
_errors:
    resource: "@TwigBundle/Resources/config/routing/errors.xml"
    prefix:   /_error

如果您来自旧版本的 Symfony,您可能需要将其添加到您的 routing_dev.yml 文件中。如果您是从头开始,Symfony 标准版已经包含它。

添加此路由后,您可以使用以下 URL:

http://localhost/app_dev.php/_error/{statusCode}
http://localhost/app_dev.php/_error/{statusCode}.{format}

将给定状态代码的错误页面预览为 HTML 或给定状态代码和格式。

参考:http://symfony.com/doc/current/controller/error_pages.html#testing-error-pages-during-development

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-08-30
    • 2011-12-15
    • 2012-05-01
    • 2015-06-24
    • 1970-01-01
    • 2021-04-20
    • 1970-01-01
    • 2019-08-17
    相关资源
    最近更新 更多