繁体   English   中英

在表单下拉列表中仅返回唯一值symfony 3.4

[英]Return only unique values on form dropdown symfony 3.4

我制作了一个表单,用于提交单个用户的上级组织。 实体链接到的数据库表包含该组织的多个条目(因为每个组织都有多个用户),我只想返回一个组织名称的实例,而不是返回20个重复的实例。

我听说有一些函数,例如distinct()或findOneOrNull,但是我不确定如何实现它们。

这是表格中的代码:

        ->add(
            'userParent',
            EntityType::class,
            [   

                'class' => UserParent::class,
                'choice_label' => function ($parents) {
                    return $parents->getParent()->getName();
                }
            ]
        )               

您可以为EntityType指定QueryBuilder

->add('userParent',
      EntityType::class,
      [   
          'class' => UserParent::class,
          'choice_label' => function ($parents) {
              return $parents->getParent()->getName();
          },
          'query_builder' => function(UserParentRepository $r) {
                                 return $r->getUniqueCompanies();
          },
      ]
    );

然后,您必须在UserParentRepository类中添加getUniqueCompanies() ,而DISTINCT会在其中提供帮助。

您应该使用查询生成器: https : //symfony.com/doc/current/reference/forms/types/entity.html#ref-form-entity-query-builder可以使用它创建自己的查询,以获取想要的实体显示。 但是一个后腿! 如果将表中的条目分组,则意味着您将仅链接到doppelgängers的特定行...听起来有些奇怪。

暂无
暂无

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

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