/** * @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); }