syfony (FOSUserBundle)模板的语法错误


ContextErrorException and Twig syntax error issue with a twig template - Symfony (FOSUserBundle)

我在Symfony上使用FOSUserBundle进行用户注册。我按照要求的步骤,按照指示继续覆盖模板。

我遇到了这些错误:

contextroreexception: Notice:未定义变量:test

紧随其后:

Twig_Error_Syntax:在"FOSUserBundle:Registration:register_content.html.twig"中编译模板时抛出异常("Notice: Undefined variable: test")

register_content.html。有问题的小树枝:

{% trans_default_domain 'FOSUserBundle' %}
<form action="{{ path('fos_user_registration_register') }}" {{ form_enctype(form) }} 
      method="POST" 
      class="fos_user_registration_register">
    {{ form_widget(form) }}
    <div>
        <input type="submit" value="{{ 'registration.submit'|trans }}" />
    </div>
</form>

RegistrationType:

<?php

namespace DEA'CourriersBundle'Form;
use Symfony'Component'Form'AbstractType;
use Symfony'Component'Form'FormBuilderInterface;
class RegistrationType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('nom')
            ->add('prenom')
            ->add('fonction')
            ->add('telephone');
    }
    public function getParent()
    {
        return 'fos_user_registration';
    }
    public function getName()
    {
        return 'app_user_registration';
    }
}

我没有覆盖控制器。你可以在这里找到。

我甚至找不到上面所说的"test"变量。任何帮助都很感激,我已经为此挣扎了一整天了

解决方案是将Twig更新到最新版本。

这个错误是由Twig的一个bug引起的,这个bug已经在Twig 1.21.2中修复了:https://github.com/twigphp/Twig/pull/1801

我找到了一个解决方案,尽管我不明白为什么它有效。

我删除了

{{ form_enctype(form) }}`

由于某种原因导致错误。也许我的文件编码与此有关?

form_enctype(form)在Symfony 2.3中已弃用,将在Symfony 3.0中删除。您应该使用form_start()。