如何更改 symfony 表单元素的顺序?

Max*_* P. 1 forms symfony

我有简单的形式MyForm1

class MyForm1 extends Symfony\Component\Form\AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        parent::buildForm($builder, $options);

        $builder->add('field1', TextType::class, [
            'label' => 'Field1'
        ])

        $builder->add('save', SubmitType::class, [
            'label' => 'Save',
        ]);
    }
}
Run Code Online (Sandbox Code Playgroud)

MyForm2继承自的形式MyForm1

class MyForm2 extends MyForm1
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        parent::buildForm($builder, $options);

        $builder->add('field2', TextType::class, [
            'label' => 'Field2'
        ])
    }
}
Run Code Online (Sandbox Code Playgroud)

和模板

{{ form(form) }}
Run Code Online (Sandbox Code Playgroud)

当我显示时MyForm2save按钮显示在之前field2。如何更改元素的顺序?我知道我可以删除并再次添加此按钮。或者为模板中的每个元素调用渲染函数。但我只想设置元素的渲染索引。假设需要更少的时间。是否可以?

谢谢

Rap*_*lié 5

在我看来,表单字段的顺序与视图相关,而不是模型。因此,您应该在视图中逐个字段手动显示表单。

{{ form_start(form) }}
   {{ form_row(form.field1)
   {{ form_row(form.field2)
   {{ form_row(form.save)
{{ form_end(form) }}
Run Code Online (Sandbox Code Playgroud)