0
我有一个配置文件和用户实体。配置文件可以通过以下三种方式之一涉及到用户:如何检查实体是否与Doctrine QueryBuilder具有ManyToMany关系
- primaryUser
- editUsers
- viewUsers
这是一个基本的权限结构。我需要做的是获得全部个人档案由用户,无论授予权限。我认为如果我使用的是Doctrine 2.5。* QueryBuilder已经添加了'成员'比较,但是我在Symfony 2.7。*中,不幸的是Doctrine只能达到2.4 *(某种稳定性问题似乎如果你用小于Symfony 3来跳到Doctrine 2.5)。
我不确定如何复制功能。
<?php
namespace AppBundle\Entity;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\ORM\EntityRepository;
class ProfileRepository extends EntityRepository
{
/**
* @param User $user
*
* @return ArrayCollection
*/
public function getAllByUser(User $user, $status = NULL)
{
$qb = $this->createQueryBuilder('p');
$e = $qb->expr();
$qb->where($e->eq('p.primary_user', ':user'));
// Some kind of comparison? a join?;
$qb->setParameter('user', $user);
$qb->setParameter('userId', $user->getId());
if ($status) {
$qb->andWhere($e->eq('p.status', ':status'));
$qb->setParameter('status', $status);
}
return $qb->getQuery()->getResult();
}
}
谢谢!我不知道MEMBER OF和isMember的帮手在不同的时间被加入了教义。 – TheGremlyn