![](/img/trans.png)
[英]Sonata Admin Bundle custom query for list to use existing Repository
[英]Sonata admin get existing query builder
请帮助找出以下内容:
我有以下代码:
/**
* @param FormMapper $formMapper
*/
public function configureFormFields(FormMapper $formMapper)
{
$formMapper
->add('sitter', EntityType::class, [
'class' => User::class,
'query_builder' => function (EntityRepository $entityRepository) {
return $entityRepository->createQueryBuilder('u')
->andWhere('u.roles like :role')
->setParameter('role', '%' . 'ROLE_STAFF' . '%');
}
], ['admin_code' => 'admin.user'])
;
问题是我的自定义查询 bulder 替换了我的表单中已经定义的值,所以每次我需要从下拉列表中从头开始选择已经定义的值。 例如,如果我删除query_builder选项,那么我将获得整个用户列表,但我只需要员工用户。 如何使用现有的查询 bulder 而不是创建新的?
我找到了解决方案。 我必须添加choice_value属性:
->add('sitter', EntityType::class, [
'class' => User::class,
'choice_value' => 'fullName',
'query_builder' => function (EntityRepository $entityRepository) {
return $entityRepository->createQueryBuilder('u')
->andWhere('u.roles like :role')
->setParameter('role', '%' . 'ROLE_STAFF' . '%');
}
], ['admin_code' => 'admin.user'])
fullName是 User 实体内部的一个方法
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.