시스템의 모든 관리자를 표시하는 페이지를 코딩했습니다. 내가하고 싶은 일은 목록에서 현재 인증 된 사용자를 제외하도록 내 쿼리를 사용자 지정하는 것입니다.
컨트롤러에서 user_id
을 가져와 엔티티 리포지토리에 전달할 수 있다는 것을 알았지 만 엔티티 리포지토리를 통해 직접 액세스하는 방법이 있는지 궁금합니다. 예를 들어Symfony2 엔티티 저장소에서 사용자 ID 가져 오기
:
use Doctrine\ORM\EntityRepository;
use Doctrine\ORM\NoResultException;
use Symfony\Component\Security\Core\User\UserInterface;
use Symfony\Component\Security\Core\User\UserProviderInterface;
use Symfony\Component\Security\Core\Exception\UsernameNotFoundException;
use Symfony\Component\Security\Core\Exception\UnsupportedUserException;
class AdminUserRepository extends EntityRepository implements UserProviderInterface
{
public function getAdmins($int = 10, $offset = 0, array $orderBy = array('admin_id', 'asc')){
$admin_id = fetch the admin id ?;
$query = $this->createQueryBuilder('admins')
->where("admins.admin_id != '".$admin_id."'")
->orderBy('admins.'.$orderBy[0], $orderBy[1])
->setFirstResult($offset)
->setMaxResults($int)
->getQuery()
->getResult();
return $query;
}
}
내 질문이 업데이트되었습니다. 나는 당신이 말하는 것처럼 그것을 할 수 있다는 것을 알고 있지만'EntityRepository' 자체에서 할 수 있는지 찾고 있습니다. – tftd
/updated ... 도움이 되겠습니다. –
나는 똑같은 생각을하고 있었지만 저장소 (repository) 내에서 인증 된 사용자 데이터에 액세스 할 수있는 것은 논리적입니다. 당신의 도움을 주셔서 감사합니다 :) – tftd