我有一个带有 EntityType
字段的表单。从中获取值的表已变大,并且呈现的选择框使页面变大(=加载缓慢)。
我替换了这个:
->add(
'contact',
'entity',
array(
'class' => 'CRMCoreBundle:Contact',
'required' => false,
'empty_data' => null,
)
)
与:
->add(
'contact',
'entity',
array(
'class' => 'CRMCoreBundle:Contact',
'choices' => array(),
'required' => false,
'empty_data' => null,
)
)
渲染一个空的选择框,在前端,我使用 AJAX 来填充和自动完成选择框。
问题是,现在当我提交表单时,它无效。有什么想法吗?
最佳答案
它未通过验证,因为创建表单时表单组件未添加您提交的值。这是为了防止表单接受未经授权的值。
正确的方法是让您的 ajax 请求表单使用表单事件更新后端的选择字段,然后使用正确的值更新显示的选择。
有关表单事件的更多信息,请参见此处 - http://symfony.com/doc/current/cookbook/form/dynamic_form_modification.html
关于ajax - symfony2 - 如何创建没有值的 "entity"类型的表单字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26469536/