Symfony2:自定义错误页扩展base.html.twig

jm2pwxwz  于 2023-10-23  发布在  其他
关注(0)|答案(6)|浏览(89)

我正在尝试自定义Symfony中的错误页面。
这是我的error.html.twig文件位于app/Resources/TwigBundle/views/Exception/

{% extends '::base.html.twig' %}

{% block body %}

<h1>{{ status_code }}: {{ status_text }}</h1>

{% endblock %}

不幸的是,我收到了以下错误消息:
致命错误:[.] vendor\symfony\src\Symfony\EventListener\RouterListener.php第144行中未捕获到异常“Symfony\Component\Routing\Exception\ResourceNotFoundException”
当我删除{% extends '::base.html.twig' %}一切正常。任何想法如何有我的基本模板包括在错误页面?

**编辑1:**奇怪的是,它似乎工作时,403抛出,例如,当我访问/user,但没有必要的特权。
**编辑2:**我将base.html.twig的全部内容粘贴到error.html.twig文件中,注意到错误是由于KnpMenuBundle包渲染的菜单引起的:

{{ knp_menu_render('ACMEMemberBundle:Builder:mainMenu', { 'style': 'pills', 'currentClass': 'active' }) }}

当我删除这条线时,一切正常。但这不是我想走的路。没有可能保留导航吗?

6mzjoqzu

6mzjoqzu1#

文件应位于app/Resources/views/Exception/
而不是
app/Resources/TwigBundle/views/Exception/

o4tp2gmn

o4tp2gmn2#

你把这一页放在下面的地方了吗?
/app/ResourceS/TwigBundle/views/Exception/error404.html.twig

{% extends '::base.html.twig' %}
{% block content %}
{%trans%}errors.404{%endtrans%}
 {% endblock %}
relj7zay

relj7zay3#

// app/Resouces/views/base.html.twig

×
{% include('path/to/include') %}

○
{% include('::path/to/include') %}
ws51t4hk

ws51t4hk4#

我终于把整个代码(base+current)放在同一个'error.html.twig'文件中了。
它为我工作,避免了巨大的头痛。

pxy2qtax

pxy2qtax5#

plz remove**::**in first line https://symfony.com/doc/current/templating.html

{% extends 'base.html.twig' %}

{% block body %}

<h1>{{ status_code }}: {{ status_text }}</h1>

{% endblock %}
omqzjyyz

omqzjyyz6#

我看到这个问题没有一个公认的答案。但这个问题的答案是在评论下的原始职位由mark.sagikazar。
如果您的error404崩溃后,你把

{% extends 'base.html.twig' %}

进入你的error404.html.twig错误说:

Symfony\Bridge\Twig\Extension\RoutingExtension::getPath(): Argument #1 ($name) must be of type string, null given, called in

那么问题就出在base.html.twig上。在我的例子中,

app.request.attributes.get('_route')

因为就像mark.sagikazar说的,404错误中没有路由,也没有其他错误消息。
所以我只是在这段代码周围放了一个if语句,像这样:

{% if app.request.attributes.get('_route') %}
.. do something here that doesnt work in error404.html twig
{% endif %}

相关问题