/** * @param Request $request * @param Place $place * @Put("admin/places/{id}") * @return Response */ public function putPlaceAction(Request $request, Place $place) { $em = $repo = $this->getDoctrine()->getManager(); $now = new \DateTime('now'); $postContent = $request->getContent(); if (!empty($postContent)) { $postContent = json_decode($postContent); $place->setName($postContent->name)->setLatitude($postContent->latitude)->setLongitude($postContent->longitude)->setDescription($postContent->description)->setPicture($postContent->picture)->setUpdatedAt($now)->setType($postContent->type); $validator = $this->get('validator'); $errors = $validator->validate($place); if (count($errors) > 0) { $view = $this->view($errors, 400)->setFormat('json'); } else { $em->persist($place); $em->flush(); $view = $this->view($place, 201)->setFormat('json'); } } else { $view = $this->view('No data posted.', 400)->setFormat('json'); } return $this->handleView($view); }