繁体   English   中英

Symfony2 - 如何验证自动完成实体表单类型?

[英]Symfony2 - How to validate autocomplete entity form type?

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

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

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

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

数据变换器示例

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM