コード例 #1
0
 /**
  * @param int $page
  * @param Request $request
  * @param Application $app
  *
  * @return Response
  */
 public function search($page, Request $request, Application $app)
 {
     $keyword = $request->query->get('search');
     if ($request->query->has('search') && empty($keyword)) {
         return $app->redirect($app->path('search'));
     }
     $response = new Response();
     $resultsPerPage = 10;
     $first = ($page - 1) * $resultsPerPage;
     /** @var Members $membersRepository */
     $membersRepository = $app['repository.members'];
     if (empty($keyword)) {
         $members = $membersRepository->findAll($first, $resultsPerPage);
         $membersCount = $membersRepository->getCount();
         $response->headers->clearCookie('keyword');
     } else {
         $membersCount = $membersRepository->getSearchCount($keyword);
         $members = $membersRepository->search($keyword, $first, $resultsPerPage);
         $response->headers->setCookie(new Cookie('keyword', $keyword));
     }
     $pages = ceil($membersCount / $resultsPerPage);
     if ($page > $pages && $page != 1) {
         $app->abort(404, 'Page does not exist.');
     }
     return $app->render('search.html.twig', ['members' => $members, 'results' => $membersCount, 'results_per_page' => $resultsPerPage, 'pages' => $pages, 'current_page' => $page, 'keyword' => $keyword], $response);
 }
コード例 #2
0
 /**
  * @param Application $app
  * @param Request $request
  *
  * @return Response
  */
 public function add(Application $app, Request $request)
 {
     $form = $app->createForm(new MemberType());
     if ($request->isMethod('post')) {
         $form->handleRequest($request);
         if ($form->isValid()) {
             $data = $form->getData();
             $member = new Member($data['username'], $data['password'], new Address('Canada', 'Ontario', $data['city'], $data['postal_code']), $data['date_of_birth'], Limits::all()[$data['limits']], new Height($data['height']), new Weight($data['weight']), BodyType::all()[$data['body_type']], Ethnicity::all()[$data['ethnicity']], new Email($data['email']));
             $app['repository.members']->add($member);
             $app->flashSuccess(sprintf('Member "%s" was successfully added', $member->getUsername()));
             return $app->redirect($app->path('manage.members'));
         }
     }
     return $app->render('manage/members.add.twig', ['form' => $form->createView()]);
 }