Symfony中的表单是否完全显示,而不仅仅是某些部分?

时间:2016-01-02 15:58:07

标签: php symfony

我想只显示表单的某些部分,但表单总是完全呈现,包含所有字段,而不是仅显示我想要显示的字段。你知道为什么吗?

{{ form_start(form) }}
    {{ form_label(form.title) }}
{{ form_end(form) }}




$form = $this->createFormBuilder($advert)
    ->add('date', DateType::class, array(
        'widget' => 'text',
        'label'  => 'custom Date',
    ))
    ->add('title', TextType::class)
    ->add('save', SubmitType::class)
    ->getForm();

  return $this->render('OCPlatformBundle:Advert:edit.html.twig', array(
    'form'   => $form->createView(),
    'advert' => $advert
  ));

结果是:显示日期和标题,包括标签和html值。

由于

2 个答案:

答案 0 :(得分:4)

form_end()还会输出form_rest(),这会呈现尚未针对给定表单呈现的所有字段:http://symfony.com/doc/current/reference/forms/twig_reference.html#form-rest-view-variables

如果您不想呈现未提交的字段,请将{'render_rest': false}添加到form_end

 {{ form_end(form, {'render_rest': false}) }}

答案 1 :(得分:1)

您只能显示 form

的部分内容
{{ form_start(form) }}
    {{ form_errors(form) }}

    {{ form_row(form.first) }}
    {{ form_row(form.second) }}
    ...

    {{ form_row(form.submit, { 'label': 'Submit me' }) }}
{{ form_end(form, {'render_rest': false}) }}

如果您想删除字段,可以删除控制器示例中的字段:

$form->remove("your fields");