我正在使用Symfony Sonata用户包进行用户管理。我创建了另一个实体LoginHistory
,OneToMany
和User
之间的关联LoginHistory
我必须显示使用KNP Paginator Bundle的所有用户的列表及其组名(通常只属于一个组),其中包含详细的登录历史记录。
我已经写了这个查询,但它没有得到用户的组数据。
$query = $repository->createQueryBuilder('u')
->join('PNCLogBundle:LoginHistory', 'log', 'WITH log.User = u.id')
->innerJoin('u.groups', 'g')
->andwhere('g.id = u.group')
->where('u.roles LIKE :roles')
->setParameter('roles', '%"ROLE_STAFF"%')
->getQuery();
答案 0 :(得分:0)
有两种类型的JOIN:“常规”加入和“获取”加入。
您需要的是获取加入。你可以阅读in the doctrine2 documentation。解决方案很简单,只需在查询构建器中的select子句中添加x = 1;
for k = 1:21
S(k) = (2./sqrt(2*pi))*(cumsum((x.^(2*(k-1)-1)*(-1.^((k-1)+2)))./((2.^(k-1))*(factorial(k-1))*(2*(k-1)+1))))
end
:
g
您还可以使用$query = $repository->createQueryBuilder('u')
->select('u', 'g')
->join('PNCLogBundle:LoginHistory', 'log', 'WITH log.User = u.id')
->innerJoin('u.groups', 'g')
->andwhere('g.id = u.group')
->where('u.roles LIKE :roles')
->setParameter('roles', '%"ROLE_STAFF"%')
->getQuery();
方法:
addSelect