public function addAction(Request $request)
 {
     $cateArray = array();
     $category = $this->get('doctrine')->getRepository('AcmeCategoryBundle:Category')->findBy(array('status' => 1));
     foreach ($category as $key => $data) {
         $cateArray[$data->getId()] = $data->getName();
     }
     $products = new \Acme\StoreBundle\Entity\Product();
     $products->setCategory('');
     $products->setName('');
     $products->setPrice('');
     $products->setDescription('');
     $products->setImage('');
     $form = $this->createFormBuilder($products)->add('category', 'choice', array('choices' => array('placeholder' => 'select category', '' => $cateArray)))->add('name', 'text')->add('price', 'text')->add('description', 'textarea')->add('image', 'file')->getForm();
     $form->handleRequest($request);
     $validator = $this->get('validator');
     $errors = $validator->validate($products);
     if (count($errors) > 0) {
         return $this->render('AcmeStoreBundle:Default:add.html.twig', array('form' => $form->createView()));
     } else {
         $a = $request->request->get('form');
         $img = $form['image']->getData()->getClientOriginalName();
         $products = new Product();
         $products->setName($a['name']);
         $products->setCategory($a['category']);
         $products->setPrice($a['price']);
         $products->setDescription($a['description']);
         $products->setStatus('1');
         $products->setImage($img);
         $em = $this->getDoctrine()->getManager();
         $em->persist($products);
         $em->flush();
         $dir = $_SERVER['DOCUMENT_ROOT'] . '/uploads/products/' . $products->getId();
         mkdir($dir);
         $form->get('image')->getData()->move($dir, $img);
         return $this->redirect($this->generateUrl('acme_store'));
     }
     return $this->render('AcmeStoreBundle:Default:add.html.twig', array('form' => $form->createView()));
 }
Esempio n. 2
0
 public function editAction(Request $request)
 {
     $user = $this->container->get('security.context')->getToken()->getUser();
     $userId = $user->getId();
     $userName = $user->getUsername();
     if ($userName == 'admin') {
         $category = $this->get('doctrine')->getRepository('AcmeCategoryBundle:Category')->findAll();
     } else {
         $category = $this->get('doctrine')->getRepository('AcmeCategoryBundle:Category')->findBy(array('userid' => $userId));
     }
     //$category= $this->get('doctrine')->getRepository('AcmeCategoryBundle:Category')->findAll();
     foreach ($category as $key => $data) {
         $cateArray[$data->getId()] = $data->getName();
     }
     $queue = $cateArray;
     array_unshift($queue, "select category");
     $cate = $queue;
     $id = $request->get('id');
     $em = $this->getDoctrine()->getManager();
     $product = $em->getRepository('AcmeStoreBundle:Product')->find($id);
     $oldimg = $product->getImage();
     $products = new \Acme\StoreBundle\Entity\Product();
     $products->setCategory('');
     $products->setName('');
     $products->setPrice('');
     $products->setDescription('');
     $products->setImage('');
     $form = $this->createFormBuilder($products)->add('category', 'choice', array('choices' => $cateArray, 'preferred_choices' => array($product->getCategory())))->add('name', 'text')->add('price', 'text')->add('description', 'textarea')->add('image', 'file', array('error_bubbling' => TRUE))->getForm();
     $form->handleRequest($request);
     $validator = $this->get('validator');
     $errors = $validator->validate($products);
     if ($request->getMethod() == 'POST') {
         if (count($errors) > 1) {
             return $this->render('AcmeStoreBundle:Default:edit.html.twig', array('form' => $form->createView(), 'products' => $products, 'product' => $product, 'id' => $id, 'image' => $oldimg));
         } else {
             $a = $request->request->get('form');
             $products = $em->getRepository('AcmeStoreBundle:Product')->find($id);
             if ($_FILES['form']['name']['image'] != NULL) {
                 $products->setImage($_FILES['form']['name']['image']);
                 if (is_file($_SERVER['DOCUMENT_ROOT'] . '/uploads/products/' . $id . '/' . $oldimg)) {
                     unlink($_SERVER['DOCUMENT_ROOT'] . '/uploads/products/' . $id . '/' . $oldimg);
                     rmdir($_SERVER['DOCUMENT_ROOT'] . '/uploads/products/' . $id);
                     $img = $form['image']->getData()->getClientOriginalName();
                     $dir = $_SERVER['DOCUMENT_ROOT'] . '/uploads/products/' . $products->getId();
                     mkdir($dir);
                     $form->get('image')->getData()->move($dir, $img);
                 }
             } else {
                 $products->setImage($oldimg);
             }
             $products->setName($a['name']);
             $products->setCategory($a['category']);
             $products->setPrice($a['price']);
             $products->setDescription($a['description']);
             $products->setStatus('1');
             $em->persist($products);
             $em->flush();
         }
         return $this->redirect($this->generateUrl('acme_store'));
     }
     return $this->render('AcmeStoreBundle:Default:edit.html.twig', array('form' => $form->createView(), 'products' => $products, 'product' => $product, 'id' => $id, 'image' => $oldimg));
 }
 /**
  * {@inheritDoc}
  */
 public function setImage($image)
 {
     $this->__initializer__ && $this->__initializer__->__invoke($this, 'setImage', array($image));
     return parent::setImage($image);
 }