/** * @Route("/denied-ad/{id}", name="denied_ad") * @ParamConverter("ad", class="AppBundle:Ad") */ public function deniedAdsAction(Ad $ad) { $em = $this->getDoctrine()->getManager(); $ad->setStatus(3); $em->persist($ad); $em->flush(); return $this->redirectToRoute("denied_ad_description", ['id' => $ad->getId()]); }
private function setDataAd(Request $request, EntityManager $em, Ad $ad) { $user = $this->container->get('security.context')->getToken()->getUser(); $json_ad = $request->get('ad'); $json_decode_ad = json_decode($json_ad); $city = $em->getRepository("AppBundle:City")->find($json_decode_ad->city); $district = $em->getRepository("AppBundle:District")->find($json_decode_ad->district); $category = $em->getRepository("AppBundle:Category")->find($json_decode_ad->categories); if ($category->getFree() == 1) { $ad->setStatus(2); } $ad->setTitle($json_decode_ad->title); $ad->setDescription($json_decode_ad->description); $ad->setPrice($json_decode_ad->price); $ad->setCity($city); $ad->setDistrict($district); $ad->setCategories($category); $ad->setEmail($json_decode_ad->email); $ad->setPhonenumber($json_decode_ad->phonenumber); $ad->setUser($user); $json_property = $request->get('property'); $json_decode_property = json_decode($json_property); foreach ($json_decode_property as $val) { $type_id = substr($val->name, -2, 1); $type = $em->getRepository("AppBundle:Type")->find($type_id); switch ($type->getType()) { case 'string': $value = new StringValue(); break; case 'integer': $value = new IntegerValue(); break; case 'enum': $value = new EnumValue(); break; default: throw new \Exception(); } $value->setAd($ad); $value->setType($type); $em->persist($value); $value->setValue($val->value); } }