Symfony 5.3的新功能:表单字段排序

295 阅读1分钟

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,
            ])
        ;
    }
}

相关

官方博客翻译,如有瑕疵,请在评论中指正。

更多技术交流点击加入Q群: 「 phpzlc & symfony4+ 」

如翻译需要调整,请前往以下链接阅读最新文档

翻译修正编辑源文