我刚刚从Symfony 2.7升级到2.8.18,当我访问一个带有以前在升级之前工作的表单的页面时,我现在收到以下错误。
阻止模板上的"_appbundle_crmpicco_reserve_widget" "::base.html.twig" 不存在。
reserve.html.twig
:
// this extends the top-level ::base.html.twig
{% extends "AppBundle:CRMPicco:base.html.twig" %}
{% block _appbundle_crmpicco_reserve_widget %}
{% spaceless %}
{# Call the parent setup #}
{{- parent() -}}
{# Display the widget now #}
{{ form_widget(form) }}
<span class='validation-box glyphicon'></span>
{% endspaceless %}
{%- endblock %}
作为我composer update
的一部分,Twig 也有一个明显的升级:
- Removing twig/twig (v1.24.2)
- Installing twig/twig (v2.2.0)
Downloading: 100%
模板继承在较新的版本中是否已更改?我在Symfony升级文档中找不到任何内容。
您的问题是块_appbundle_crmpicco_reserve_widget
在父AppBundle:CRMPicco:base.html.twig
模板中不存在。在 Twig 1.x 中,在子模板内调用parent()
以静默方式返回。这在 Twig 1.29 中已弃用,并自 Twig 2.0 以来引发异常。