symfony2 - 如何创建没有值的“实体”类型的表单字段

时间:2014-10-20 15:37:32

标签: ajax forms symfony

我有一个带有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填充并自动完成选择框。

问题是,现在当我提交表单时,它无效。有什么想法吗?

1 个答案:

答案 0 :(得分:3)

它不会通过验证,因为在创建表单时,表单组件未添加您提交的值。这是为了保护表单不接受未经授权的值。

执行此操作的正确方法是让您的ajax请求表单使用表单事件更新后端的选择字段,然后使用适当的值更新显示的选择。

有关表格活动的更多信息,请访问http://symfony.com/doc/current/cookbook/form/dynamic_form_modification.html