container->get('skobkin_point_tools.api_user'); /** @var QueryBuilder $qb */ $qb = $this->getDoctrine()->getManager()->getRepository('SkobkinPointToolsBundle:User')->createQueryBuilder('u'); $subscribers = $qb ->select('u') ->innerJoin('u.subscriptions', 's') ->where('s.author = :author') ->orderBy('u.login', 'asc') ->setParameter('author', $user->getId()) ->getQuery()->getResult() ; $qb = $this->getDoctrine()->getManager()->getRepository('SkobkinPointToolsBundle:SubscriptionEvent')->createQueryBuilder('se'); $subscriptionsEvents = $qb ->select() ->where('se.author = :author') ->orderBy('se.date', 'desc') ->setMaxResults(10) ->setParameter('author', $user) ->getQuery()->getResult() ; return $this->render('SkobkinPointToolsBundle:User:show.html.twig', [ 'user' => $user, 'subscribers' => $subscribers, 'log' => $subscriptionsEvents, 'avatar_url' => $userApi->getAvatarUrl($user, UserApi::AVATAR_SIZE_LARGE), ]); } public function topAction() { /** @var EntityManager $em */ $em = $this->getDoctrine()->getManager(); /** @var QueryBuilder $qb */ $qb = $em->getRepository('SkobkinPointToolsBundle:Subscription')->createQueryBuilder('s'); /** @var TopUserDTO[] $topUsers */ $topUsers = $qb ->select(['COUNT(s.subscriber) as cnt', 'NEW SkobkinPointToolsBundle:TopUserDTO(a.login, COUNT(s.subscriber))']) ->innerJoin('s.author', 'a') ->orderBy('cnt', 'desc') ->groupBy('a.id') ->setMaxResults(30) ->getQuery()->getResult() ; return $this->render('@SkobkinPointTools/User/top.html.twig', [ 'top_users' => $topUsers ]); } /** * @param Request $request */ public function searchUserAction(Request $request) { $login = $request->request->get('login'); if (!$login) { return $this->redirectToRoute('index'); } return $this->redirectToRoute('user_show', ['login' => $login]); } }