Symfony5.3 的新功能:表单字段排序
正文
Symfony表单是按照字段定义的顺序来渲染页面的。这导致在复杂表单中动态添加/删除字段时,可能会引起问题(例如,通过表单事件添加的字段最终可能会在提交表单按钮后呈现出来)。
这就是为什么在Symfony 5.3中可以对表单字段进行排序以控制它们呈现的顺序。为此,请使用新priority
选项,该选项是默认值为的正整数或负整数或0。具有较高优先级的字段将首先呈现(具有相同优先级的字段将以其原始顺序呈现):
// src/Form/Type/TaskType.php
namespace App\Form\Type;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\DateType;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\FormBuilderInterface;
class TaskType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options): void
{
$builder
->add('task', TextType::class, ['priority' => 150])
->add('dueDate', DateType::class)
->add('save', SubmitType::class, [
'priority' => $options['show_first'] ? 1000 : -1000,
])
;
}
}