簡體   English   中英

帶有 twig 模板的 ContextErrorException 和 Twig 語法錯誤問題 - Symfony (FOSUserBundle)

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

我在 Symfony 上使用 FOSUserBundle 進行用戶注冊。 我遵循了所需的步驟並按照指示繼續覆蓋模板。

我遇到了這些錯誤:

ContextErrorException:注意:未定義的變量:測試

其次是:

Twig_Error_Syntax:在“FOSUserBundle:Registration:register_content.html.twig”中的模板(“注意:未定義變量:測試”)的編譯過程中拋出異常

這是有問題的 register_content.html.twig:

{% 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>

注冊類型:

<?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';
    }
}

我沒有覆蓋控制器。 你可以在這里找到它。

我什至找不到所說的“測試”變量。 任何幫助表示贊賞,我已經為此苦苦掙扎了一整天。

解決方案是將 Twig 更新到最新版本。

該錯誤是由 Twig 中的一個錯誤引起的,該錯誤已在 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() 。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM