Пример #1
0
 public function resultAction(Request $request, $pickupCity, $returnCity, $pickupDate, $returnDate)
 {
     $session = $this->get('session');
     $query = new SearchQuery();
     /*Repopulate form */
     $query->setPickupCity($session->get('pickupCity'));
     $query->setReturnCity($session->get('returnCity'));
     $query->setPickupDateTime($session->get('pickupDateTime'));
     $query->setReturnDateTime($session->get('returnDateTime'));
     /*Trying to access not through search route */
     if ($query->getPickupCity() == null || $query->getReturnCity() == null || $query->getPickupDateTime() == null || $query->getReturnDateTime() == null) {
         return $this->redirectToRoute('results_error');
     }
     /*Trying to access not through search route */
     if ($query->getPickupCity() != $pickupCity || $query->getReturnCity() != $returnCity || $query->getPickupDateTime() != \DateTime::createFromFormat('d-m-Y-H-i', $pickupDate) || $query->getReturnDateTime() != \DateTime::createFromFormat('d-m-Y-H-i', $returnDate)) {
         return $this->redirectToRoute('results_error');
     }
     $form = $this->createForm(SearchQueryType::class, $query);
     /*Handle new search query */
     $form->handleRequest($request);
     if ($form->isSubmitted() && $form->isValid()) {
         $session = $this->get('session');
         $data = $form->getData();
         $session->set('pickupCity', $data->getPickupCity());
         $session->set('returnCity', $data->getReturnCity());
         $session->set('pickupDateTime', $data->getPickupDateTime());
         $session->set('returnDateTime', $data->getReturnDateTime());
         return $this->redirectToRoute('results', array('pickupCity' => $data->getPickupCity(), 'returnCity' => $data->getReturnCity(), 'pickupDate' => $data->getPickupDateTime()->format('d-m-Y-H-i'), 'returnDate' => $data->getReturnDateTime()->format('d-m-Y-H-i')), 301);
     }
     /*Display resutls logic */
     $car = new Car();
     $car->setSlug('fiat-126p');
     $car->setModel('Fiat 126p');
     $car->setClassId(1);
     $car->setNumberOfDoors(2);
     $car->setNumberOfSeats(4);
     $car->setTransmissionId(1);
     $car->setPricePerHour(30);
     return $this->render('AppBundle:default:results.html.twig', array('form' => $form->createView(), 'car' => $car));
 }