在升级 Twig 并升级到 Symfony 2.8.18 后,在模板中找不到块



我刚刚从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 以来引发异常。

最新更新