[英]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.