Пример #1
0
 /**
  * @Route("/report/norm")
  */
 function NormAction(Request $request)
 {
     $em = $this->getDoctrine()->getManager();
     $form = $this->createFormBuilder()->add('dateStart', 'date', array('label' => 'Дата старта'))->add('dateEnd', 'date', array('label' => 'Дата окончания'))->add('normId', 'text', array('label' => 'Норма'))->add('Save', 'submit', array('label' => 'Отправить'))->getForm();
     $form->handleRequest($request);
     if ($form->isValid()) {
         $dateStart = $request->request->all()['form']['dateStart'];
         $dateStart = $dateStart['year'] . '-' . $dateStart['month'] . '-' . $dateStart['day'];
         $dateEnd = $request->request->all()['form']['dateEnd'];
         $dateEnd = $dateEnd['year'] . '-' . $dateEnd['month'] . '-' . $dateEnd['day'];
         $normId = $request->request->all()['form']['normId'];
         $user = $this->getUser();
         $report = new Report($this->getNorms(), $this->getJobsNorm($normId, $user->getId(), $dateStart, $dateEnd), $user);
         return $this->render('report/norm_detail.html.twig', array('norm' => $report->getNorms()[$normId], 'jobs' => $report->getJobs()));
     }
     //форма ввода
     return $this->render('report/form4.html.twig', array('form' => $form->createView()));
 }
 /**
  * Creates a new Report entity.
  *
  * @Route("/", name="reports_create")
  * @Method("POST")
  * @Template("Report/new.html.twig")
  *
  * @param Request $request
  *
  * @return array|\Symfony\Component\HttpFoundation\RedirectResponse
  */
 public function createAction(Request $request)
 {
     $report = new Report();
     $report->setUser($this->getUser());
     $form = $this->createCreateForm($report);
     $form->handleRequest($request);
     if ($form->isValid()) {
         $uploadDirectory = 'uploads';
         $file = $report->getFile();
         $fileName = sha1_file($file->getRealPath()) . '.' . $file->guessExtension();
         $fileLocator = realpath($this->getParameter('kernel.root_dir') . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . 'web') . DIRECTORY_SEPARATOR . $uploadDirectory;
         $file->move($fileLocator, $fileName);
         $report->setUri('/' . $uploadDirectory . '/' . $fileName);
         $em = $this->getDoctrine()->getManager();
         $em->persist($report);
         $em->flush();
         return $this->redirect($this->generateUrl('reports'));
     }
     return ['report' => $report, 'new_form' => $form->createView()];
 }
 /**
  * Post a new report.
  *
  * { "report": { "description": "Test", "long": "30", "lat": "34", "type": "pmd", "uri": "www.google.be" } }
  *
  * @param Request $request
  * @param $user_id
  *
  * @return View|Response
  *
  * @FOSRest\View()
  * @FOSRest\Post(
  *     "/users/{user_id}/reports/",
  *     name = "api_users_reports_post",
  *     requirements = {
  *         "user_id" : "\d+"
  *     }
  * )
  * @Nelmio\ApiDoc(
  *     input = "ApiBundle\Form\ReportType",
  *     statusCodes = {
  *         Response::HTTP_CREATED : "Created"
  *     }
  * )
  */
 public function postReportAction(Request $request, $user_id)
 {
     # HTTP method: POST
     # Host/port  : http://www.zerowaste.local
     #
     # Path       : /app_dev.php/api/v1/users/1/reports/
     $em = $this->getDoctrine()->getManager();
     $user = $em->getRepository('AppBundle:User')->find($user_id);
     if (!$user instanceof User) {
         throw new NotFoundHttpException();
     }
     $report = new Report();
     $report->setUser($user);
     $logger = $this->get('logger');
     $logger->info($request);
     return $this->processReportForm($request, $report);
 }