我有一个棘手的查询问题,我使用此代码来提取用户有权访问的容器(访问定义在多对多关系中):
//Fetch the containers
$repository = $this->getDoctrine()->getRepository('BizTVContainerManagementBundle:Container');
$query = $repository->createQueryBuilder('c')
->innerJoin('c.users','u')
->where('c.company = :company')
->setParameter('company', $companyId)
->orderBy('c.name', 'ASC')
->getQuery();
$containers = $query->getResult();
现在我实际上有 4 级权限的层次结构 - 公司、地理区域、建筑物和屏幕。我想设置它,以便当用户对父对象具有权限时,查询也返回子对象,而没有在子对象上设置任何特定权限。
如果我可以访问 symfony2 的优秀实体系统,我将能够放置类似的东西
If $entity->getParent() == granted
OR
$entity->getParent()->getParent() == granted
THEN
this is granted also
但是在 SQL 中,我无法深入挖掘这样的级别,可以吗?