如何禁用 Symfony 表单中的自动设置值?

How can I disable auto set value in Symfony form?

我在控制器中创建了一个表单:

$form = $this->createFormBuilder()
    ->add('test', TextType::class)
    ->add('submit', SubmitType::class)
    ->getForm();

我的 Twig 页面中有这段代码:

{{ form(form, { 'attr': {'autocomplete': 'off'} }) }}

现在当我为输入写一个值(例如“123456”)并且当我提交表单并且它无效时,页面刷新并且我的输入值显示“123456”并且当我再次刷新页面时值不变.

你有几种方法可以做到:

  1. 您可以创建新的表单类型并使用全局表单主题模板自定义其呈现方式
  2. 您可以以不同方式呈现特定字段
  3. 您可以尝试在呈现字段时覆盖 value 属性(无法处理某些表单主题)

阅读 symfony documentation on form themes 了解哪种解决方案更适合您的用例或应用程序。

无论如何,对于验证码输入(如评论中所述),我建议您完全实现一个新的表单类型并分别处理其呈现、选项和逻辑。