2017-05-21 10 views
0

私は売り上げアイテムページを作ろうとしています。フォームとページのレンダリング 私が間違っていることを完全には分かっていませんが、私が提出したときにエラー500が発生しました。文法エラーがあり、私が捕まえていない可能性がありますイメージをsymfony 3にアップロードする

私はパラメータセットを持っていますimage_directoryとして: '%kernel.root_dir%/ .. /ウェブ/画像君parameters.ymlファイルの使用では

class SellPage extends Controller 
    { 
     /** 
     * @Route("/SellItem", name="Sell_Item") 
     */ 
     public function goToSellPage(Request $request) 
     { 
      $item = new Item(); 

      $sellForm = $this->createFormBuilder($item) 
       ->setMethod("POST") 
       ->add('name', TextType::class, array('label' => 'Item Name: ', 'attr' => array('class' => 'form-control form-group'))) 
       ->add('price', TextType::class, array('label' => 'Price: ', 'attr' => array('class' => 'form-control form-group'))) 
       ->add('image', FileType::class, array('label' => 'Image Upload Click Here', 'attr' => array('class' => 'btn btn-lg form-group'))) 
       ->add('description', TextareaType::class, array('label' => 'Description', 'attr' => array('class' => 'form-control form-group'))) 
       ->add('category', EntityType::class, array('class' => 'AppBundle\Entity\Category', 'choice_label' => 'name', 'label' => 'Category', 'attr' => array('class' => 'form-control form-group'))) 
       ->add('seller', EntityType::class, array('class' => 'AppBundle\Entity\User', 'choice_label' => 'userName', 'label' => 'Seller', 'attr' => array('class' => 'form-control form-group'))) 
       ->add('save', SubmitType::class, array('label' => 'Submit', 'attr' => array('class' => 'btn btn-lg btn-success form-group'))) 
       ->getForm(); 

      $sellForm->handleRequest($request); 
      if ($sellForm->isValid()) 
      { 
       $formData = $request->request->get('sellForm'); 
       $item->setName($formData['name']); 
       $item->setPrice($formData['price']); 
       $item->setDescription($formData['description']); 
       $repository = $this->getDoctrine()->getManager()->getRepository('AppBundle:User'); 
       $item->setSeller($repository->getUserByName($item->getSeller())); 
       $item->setBuyer($repository->find(2)); 

       $fileName = 'http://sfsuse.com/~sp17g01/sp17g01/web/images/'.md5(uniqid()).$sellForm['image']->getData()->guessExtension(); 

       $sellForm['image']->getData()->move(
        $this->getParameter('image_directory'), 
        $fileName); 





       $item->setImage($fileName); 



       $catRepository = $this->getDoctrine()->getManager()->getRepository('AppBundle:Category'); 
       $item->setCategory($catRepository->find(1)); 

       $em = $this->getDoctrine()->getManager(); 
       $em->persist($item); 
       $em->flush(); 



      } 

      return $this->render('default/SellItem.html.twig',['sellForm' => $sellForm->createView(),]); 
     } 
    } 
+0

あなたは500エラーを引き起こしているかを確認するためにログをチェックすることはできますか? –

+0

[this](http://dancostinel.com/blog/web/blog/how-to-create-upload-functionality-using-symfony3)チュートリアルをご覧ください。 –

答えて

0

image_directory: images 

そして私はまた、あなたがそうのような$filenameを変更する必要があると思います:

エラーが発生した場合は、app_dev.phpをsymfonyアプリのURL(デバッグURL)に追加することをお勧めします。だから、ローカルホストの使用上の例:

http://localhost/app_dev.php

そして、ルートを追加することによってルートを指し、例:

http://localhost/app_dev.php/myRoute

その後、あなたはより多くのデバッグ情報を取得します。開発用にdeubg URLを使用することをお勧めします。

0

は、この構造を使用してみてください:

 if ($form->isSubmitted()) { 
      if ($form->isValid()) { 
       $img = $user->getImg(); 
       if ($img !== null) { 
        $img = $user->getImg(); 
        $fileName = md5(uniqid()).'.'.$img->getExtension(); 
        $img->move(
         $this->getParameter('user_images'), 
         $fileName 
        ); 
        $user->setImg($fileName); 
       } 
      } 
     } 
関連する問題