我一直在努力做到这一点。在文档中,似乎没有任何选项可以订购表单字段。
因此,我的表单中有这样的名字和姓氏字段:
->add('firstname', TextType::class, [
'required' => true
])
->add('address', TextareaType::class, [
'required' => true
])
然后,我像这样添加了一个事件侦听器:
$builder->addEventListener(FormEvents::PRE_SET_DATA, function (FormEvent $event) {
$plan = $event->getData();
$form = $event->getForm();
if (!$plan->getReferenceId()) {
$form->add('ref', TextType::class, [
'label' => 'Reference Number',
'required' => true,
// position should be after the firstname and before address
]);
}
}
在某些线程中,可以添加一个“位置”属性,但这是针对Symfony 2的,并且现在在S4中不存在。
我想这可以在细枝form_widget中完成,但是我正在使用细枝模板,该模板也以其他形式使用。因此,我希望尽可能以表格类型完成此操作。
答案 0 :(得分:0)
这似乎是Symfony github上确实需要解决的问题 此处:https://github.com/symfony/symfony/issues/5827 在这里:https://github.com/symfony/symfony/pull/11241#issuecomment-288462731,Fabien个人拒绝了PR的可能解决方案
我有同样的问题,看来唯一的解决方案是在模板上依次用form_row或form_widget手动打印字段。 像这样:https://symfony.com/doc/current/form/form_customization.html