示例#1
0
 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);
     }
 }