示例#1
1
 /**
  * @param EntityManager $em
  * @param array $imagesArray
  * @param Advertisment $adv
  * @return array
  */
 public static function uploadImages(EntityManager $em, $imagesArray, $adv)
 {
     $dummyImage = '/resources/images/adv-default.png';
     $basePath = 'uploads/' . $adv->getId();
     $uploadedImages = array();
     $adv = $em->getRepository('NaidusvoeBundle:Advertisment')->find($adv->getId());
     $fs = new Filesystem();
     $counter = 1;
     if ($imagesArray) {
         foreach ($imagesArray as $image) {
             $image = (object) $image;
             if ($image->image !== null) {
                 $imagePath = $basePath . '/' . $counter . '.jpg';
                 $image = explode(',', $image->image);
                 $image = base64_decode($image[1]);
                 $fs->dumpFile($imagePath, $image);
                 $attachment = new Attachment();
                 $attachment->setAdvertisment($adv);
                 $attachment->setImage($imagePath);
                 $em->persist($attachment);
                 $uploadedImages[] = $attachment;
                 $counter++;
             }
         }
     }
     if ($counter === 1) {
         $attachment = new Attachment();
         $attachment->setAdvertisment($adv);
         $attachment->setImage($dummyImage);
         $em->persist($attachment);
         $uploadedImages[] = $attachment;
     }
     return $uploadedImages;
 }
 private function generateDummyAdvs($count, $type)
 {
     $advs = [];
     for ($i = 0; $i < $count; $i++) {
         $newAdv = new Advertisment();
         $newAdv->setTitle('Ваша реклама');
         $attachment = new Attachment();
         $attachment->setImage('/resources/images/adv-default.png');
         $newAdv->addAttachment($attachment);
         $newAdv->setDescription('Тут може бути ваша реклама!');
         $newAdv->setDummy(true);
         $newAdv->setType($type);
         $advs[] = $newAdv;
     }
     return $advs;
 }
 /**
  * @param object $data
  * @param User $user
  * @return Advertisment
  */
 private function AddAdv($data, $user)
 {
     /** @var EntityManager $em */
     $em = $this->getDoctrine()->getManager();
     $adv = Advertisment::addNewAdv($em, $data, $user->getId());
     $em->persist($adv);
     $em->flush($adv);
     $attachments = Attachment::uploadImages($em, $data->photos, $adv);
     foreach ($attachments as $item) {
         $em->persist($item);
     }
     $em->flush();
     return $adv;
 }