我有一个未绑定到任何实体的自定义autocomplete输入:
$builder
->add('input', TextType::class, [
'autocomplete' => true,
'autocomplete_url' => 'https://path-to-autocomplete',
'tom_select_options' => [
'create' => false,
'preload' => true,
'maxItems' => 1,
'delimiter' => '/',
],
])
;
输入正确地请求自动完成URL、获取结果、呈现正确的项标签,并通过表单发送正确的项值。
在步骤#6提交表单后出现问题。
1.呈现空窗体。
1.我们选择ID为15
且标签为Foo
的项目。
1.输入正确呈现。
1.表单已提交。
15
的值与表单一起发送到服务器。
1.现在,我们必须使用15
的输入初始值重新呈现表单。
此时,输入值呈现为15
而不是Foo
,这非常合理,输入只是不知道如何获取ID为15
的项的标签。
问:如何为输入提供关于项目标签的数据?
我希望它有类似reverse_autocomplete_url
的东西,在输入初始化后调用它来通过它们的ID获取条目,但我不认为有这样的选项。
2条答案
按热度按时间kgsdhlau1#
因为你用的是交响乐。
您使用了
$form->isValid()
等。持久化并刷新对象。
然后调用
redirectToRoute
函数到当前路径,而不是重新渲染树枝。如果你能提供更多关于你的使用情况的细节,我可以给予你一个更好的答案。
osh3o9ms2#
您必须使用options array初始化表单域:
通过
valueField
和labelField
属性,value
和text
密钥是customizable。