loader = $twig->getLoader(); $this->entityManager = $entityManager; } #[Route('/cds/directory', name: 'directory')] public function index(): Response { return $this->redirectToRoute('directory-list'); } #[Route('/cds/directory/list', name: 'directory-list')] public function list(Request $request): Response { $user = $this->getUser(); $repository = $this->entityManager->getRepository(User::class); $criteria = []; $orderBy = [ 'second_name' => 'ASC', 'first_name' => 'ASC' ]; switch ($request->query->get('sort')) { case 'name_desc': $orderBy = [ 'second_name' => 'DESC', 'first_name' => 'ASC' ]; break; case 'start_asc': $orderBy = [ 'start_date' => 'ASC', 'second_name' => 'ASC', 'first_name' => 'ASC' ]; break; case 'start_desc': $orderBy = [ 'start_date' => 'DESC', 'second_name' => 'ASC', 'first_name' => 'ASC' ]; break; } $userlist = $repository->findBy( $criteria, $orderBy ); return $this->render( 'user-list.html.twig', [ 'user' => $user, 'page' => [ 'title' => 'Directory', 'section' => 'CDS', 'section_link' => '/cds' ], 'userlist' => $userlist ] ); } #[Route('/cds/directory/view', name: 'directory-view')] public function view(Request $request): Response { $user = $this->getUser(); $repository = $this->entityManager->getRepository(User::class); $id = (int)$request->query->get('id'); $___user = $repository->find($id); if ($___user != null) { $data = $___user; } else { return $this->redirectToRoute('directory-list'); } return $this->render( 'user-view.html.twig', [ 'user' => $user, 'page' => [ 'title' => 'View User', 'section' => 'Directory', 'section_link' => '/directory/list' ], 'data' => $data ] ); } }