2017-02-17 5 views
0

В представлении я хочу отображать связанные значения, но все связанные значения не могут отображаться, потому что они зависят от доступа пользователя.ParamConverter: вводить curent пользователя в репозиторий

Для этого мне просто нужно сделать leftJoin с -> где ('user', $ user). Вопрос в том, как ... как я могу вставить текущего пользователя в репозиторий из ParamConverter?

+0

Доступ к вашему пользователю осуществляется с использованием системы ролей symfony? – Rooneyl

+0

http://stackoverflow.com/q/8153103/1220930 – Timurib

+0

Да, он может получить доступ к представлению, но в представлении я перечисляю другие объекты, и мне нужны только объекты, к которым он может присоединиться. Чтобы сделать это, мне нужно сделать запрос, в котором я указываю текущему пользователю фильтровать результаты. – mpiot

ответ

1

Предполагая, что вы используете Доктрину, это должно работать;

В вашем контроллере;

$objRepo = $this->getDoctrine()->getManager()->getRepository('AppBundle:Objects'); 

$files = $this->objRepo->getAllForUserId($this->getUser()->getId()); 

И в вашем файле репо;

public function getAllForUserId($user_id, $limit=100) 
{ 
    if (null === $user_id) { 
     throw new ORMInvalidArgumentException('User id not set'); 
    } 

    $queryBuilder = $this->createQueryBuilder('obj'); 

    $queryBuilder->select(array('obj', 'usr')) 
     ->innerJoin('obj.users', 'usr') 
     ->where('usr.id = :user_id') 
     ->setParameter(':user_id', $user_id) 
     ->orderBy('file.created', Criteria::DESC); 

    $query = $queryBuilder->getQuery(); 

    return $query->getResult(); 

} 

 Смежные вопросы

  • Нет связанных вопросов^_^