【问题标题】:Symfony2, delimiters for a formSymfony2,表格的分隔符
【发布时间】:2014-10-13 14:20:22
【问题描述】:

我注意到,当我使用这样的构建器生成表单时:

$builder
        ->add('valide')
        ->add('adresse', new \Acme\CoreBundle\Form\AdresseType())
        ->add('prestations', 'entity', array(
            'class' => 'AcmeAppartBundle:Prestation',
            'property' => 'nom',
            'multiple' => true,
            'expanded' => true)
        );

'presations' 字段(这是一个完整的表格)可以用这样的树枝呈现:{{ form(form.prestations) }}

我的问题是:有没有办法对表格的其余部分做同样的事情?我的意思是一样的:{{ form(form) }} 但是没有包含{{ form(form.prestations) }} 部分。(如何在formType 中定义表单的“部分”)?

【问题讨论】:

    标签: forms symfony


    【解决方案1】:

    如果您需要更改渲染顺序,以便首先渲染 form.presentations,然后再渲染表单的其余部分,您可以这样做:

    {{ form(form.prestations) }}
    {{ form_rest(form) }}
    

    当您执行form_rest(form) 时,它将渲染之前未渲染的所有内容。

    来自documentation

    这会渲染给定的所有尚未渲染的字段 形式。始终将其放在表单中的某个地方是个好主意 因为它会为您呈现隐藏字段并制作您忘记的任何字段 渲染得更明显(因为它会为您渲染该字段)。

    【讨论】:

    • 是的,我在文档中看到了它,不幸的是我需要在表单末尾呈现{{form(form.presations)}},稍后我会查看来自 dmnptr 的链接。感谢您的回答!
    • 你应该在问题中指定。
    【解决方案2】:

    如果您想要根据特定条件添加/删除表单的某些部分,则应使用表单事件。

    在此处查看文档 - http://symfony.com/doc/current/cookbook/form/dynamic_form_modification.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-12-24
      • 2019-11-24
      • 1970-01-01
      • 1970-01-01
      • 2017-08-11
      • 1970-01-01
      • 2021-08-13
      相关资源
      最近更新 更多