如何禁用 Symfony 形式的自动设置值?

问题描述

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

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

我的树枝页面中有此代码

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

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

解决方法

您有几种方法可以做到:

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

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

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