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

Php 在表单下拉列表symfony 3.4中仅返回唯一值,php,symfony,doctrine,Php,Symfony,Doctrine,我制作了一个表单,用于提交单个用户的父组织。实体链接到的数据库表包含组织的多个条目(因为有多个用户与每个组织关联),我只想返回组织名称的一个实例,而不是20个副本 我听说有distinct()或findOneOrNull等函数,但我不知道如何实现它们 以下是表格中的代码: ->add( 'userParent', EntityType::class, [ 'cla

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

我听说有distinct()或findOneOrNull等函数,但我不知道如何实现它们

以下是表格中的代码:

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

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

您应该使用查询生成器: 使用它,您可以创建自己的查询,以显示您想要显示的实体。但是一只母鹿!如果将表中的条目分组,则意味着您将只链接到doppelgängers中的一个特定行。。。听起来有点奇怪。

您可以为
实体类型指定一个:

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

然后,您必须在
UserParentRepository
类中添加
GetUniqueCompanys()
,这就是a将提供帮助的地方。

当我使用此查询时,出现一个错误,“警告:spl\u object\u hash()希望参数1为object,字符串give”