我想只显示表单的某些部分,但表单总是完全呈现,包含所有字段,而不是仅显示我想要显示的字段。你知道为什么吗?
{{ 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值。
由于
答案 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");