我有一个具有所有者属性的项目实体,因此我只能向登录用户显示项目。用户实体具有管理员属性,其他用户。在twig中,我可以将item.owner.supervisor.id与登录用户进行比较。但现在我想创建一个存储库函数来显示所有拥有和监督的项目。
$qb = $this->createQueryBuilder('i')
->select('i')
->where('i.owner = :user_id')
->setParameter('user_id', $user->getId());
return $qb->getQuery()->getResult();
这是我当前使用自有项目的函数。如果我使用
->where('i.owner.supervisor = :user_id')
我收到错误,因为主管不是商品的属性。我实际上没有看到解决方案。
答案 0 :(得分:0)
我找到了解决方案。我创建了另一个查询,我得到所有用户,我是一名主管。
$owner = $this->createQueryBuilder('us')
->select('u.id')
->from('MyBundle:User', 'u')
->where('u.supervidor = :user_id')
->setParameter('user_id', $user->getId());
$ownerResult = $owner->getQuery()->getResult();
$qb = $this->createQueryBuilder('i')
->select('i')
->where('i.owner = :user_id')
->orWhere('i.owner IN (:subs)')
->setParameter('subs', $ownerResult)
->setParameter('user_id', $user->getId());
return $qb->getQuery()->getResult();