コード例 #1
0
 /**
  * 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()];
 }
コード例 #2
0
 /**
  * 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);
 }