在升级Twig之后在模板中找不到阻止并升级到Symfony 2.8.18

时间:2017-03-16 09:37:35

标签: php symfony templates twig symfony-2.8

我刚刚从Symfony 2.7升级到2.8.18,当我访问一个以前在升级之前工作的表单的页面时,我现在收到以下错误。

  

Block" _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 upgrade docs中找到任何内容。

1 个答案:

答案 0 :(得分:3)

您的问题是父_appbundle_crmpicco_reserve_widget模板中不存在阻止AppBundle:CRMPicco:base.html.twig。在Twig 1.x中,以静默方式返回子模板中的parent()。这在Twig 1.29中已弃用,并且自Twig 2.0以来抛出异常。