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