问题描述
我有一个带有聚合字段的子查询查询:
$qRoles = $this->getEntityManager()
->createQueryBuilder()
->addSelect('group_concat(r.label)')
->from(UserAccessRole::class,'uar')
->leftJoin(Role::class,'r','WITH','uar.role = r.id')
->where('uar.userId = a.id')
->addGroupBy('uar.userId');
$qb = $this->getEntityManager()
->createQueryBuilder()
->from(Account::class,'a')
->addSelect('a.name')
->addSelect('(' . $qRoles->getDql() . ') as roles');
return $qb;
还有一个像 yaml:
accounts-datagrid:
source:
skip_acl_apply: true
query_builder: '@mybundle.acl.repository->getVisibleAccounts()'
columns:
name:
label: name
roles:
label: Ruoli
frontend_type: string
filters:
columns:
name:
type: string
data_name: a.name
roles:
type: string
data_name: roles
filter_by_having: false
sorters:
columns:
name:
data_name: a.name
roles:
data_name: roles
我获得了这样的数据网格:
NAME ROLES
admin Seller,Buyer,Administrator
pippo Seller
pluto Buyer
... ...
当我为 ROLES 列 Es 插入过滤字符串时:'Seller'
我有一个内部 500 错误
[语法错误] 第 0 行,第 407 列:错误:预期 =、、>、>=、!=,得到 'LIKE' 500 内部服务器错误 - QueryException 1个链接异常: 查询异常 »
[2/2] QueryException: [Syntax Error] line 0,col 407: Error: Expected =,>,>=,!=,got 'LIKE'
[1/2] QueryException: SELECT a.id FROM mybundle...\Account a INNER JOIN a.user u WHERE (SELECT group_concat(r.label) FROM mybundle...\UserAccessRole uar LEFT JOIN mybundle.. .\Role r WITH uar.role = r.id WHERE uar.userId = a.id GROUP BY uar.userId) LIKE :roles1085237485
为什么这种字段会出现错误? 如果我过滤其他字段,一切正常。
请帮助我,这让我发疯。 谢谢
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)