从树枝上隐藏不需要的Symfony表单字段

Ste*_*sic 1 symfony-forms symfony twig

在树枝中显示Symfony表单时,如何隐藏不在form_widget中的字段

{{ form_start(form) }}
    {{ form_widget(form.field1) }}
{{ form_end(form) }}
Run Code Online (Sandbox Code Playgroud)

如果我在表单类型中有field2,它将默认显示在twig中,无论我没有在form_widget中插入

class MessageFormType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('field1', TextType::class, array())

            ->add('field2', TextType::class, array())
    }
}
Run Code Online (Sandbox Code Playgroud)

我正在用css隐藏那些不需要的fieled,我想知道是否有一些优雅的解决方案?

ste*_*ddy 6

文档中,您需要将键值对'render_rest' : false传递给form_end标记.

{# don't render unrendered fields #}
{{ form_end(form, {'render_rest': false}) }}
Run Code Online (Sandbox Code Playgroud)

  • 但如果 token 选项打开,请不要忘记通过添加 `{{ form_row(form._token) }}` 来渲染“CSRF token”,否则提交表单时会出现错误 (2认同)