Symfony2 – 如何validation自动完成实体表单类型?

我有一个包含以下字段的表单:

$builder ->add('title', 'text') ->add('body', 'textarea') ->add('tags', 'entity', [ 'class' => 'AppBundle\Entity\Tag', 'choice_label' => 'name', 'expanded' => false, 'multiple' => true, ]); 

用户可以选择多个标签。 一切都很完美。 但是现在当标签的数量变得非常大(超过20000个标签)时,页面呈现变得非常慢,因为实体类型将所有标签加载到选择框中。 因此,我实现了一个jQuery自动完成选择框以防止加载所有实体,但是当我提交表单时,validation器仍会加载所有标签以进行validation! 如何解决此validation问题? 谢谢!

不使用entity字段类型,而是使用将接受关联实体的ID的简单text类型。 您还需要使数据转换器将提交的ID转换为将在表单的数据实体上设置的实体对象(反之亦然)。

数据变换器示例

由于数据转换器,validation将像entity字段类型一样工作。