Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [Symfony2][Symfony]Symfony 3.4 . Upload plików i problem z zaprogramowaniem editAction, Poprawnie uploaduje zdj za pomocą form, nie umiem zrobić editAction
wluczykuj
post 27.08.2018, 19:16:18
Post #1





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 13.12.2016

Ostrzeżenie: (0%)
-----


Cześć,

mam problem z napisaniem editAction() która edytowałaby za pomocą formularza wgrane zdjęcie. Mam ewidentny problem ze ścieżkami. Czy mogę prosić o pomoc?

The file "G:\xampp5.6\htdocs\future\future/web/uploads/images/G:\xampp5.6\tmp\phpB0E6.tmp" does not exist

  1. <?php
  2.  
  3. namespace AppBundle\Controller;
  4.  
  5. use AppBundle\Entity\Blog;
  6. use Symfony\Bundle\FrameworkBundle\Controller\Controller;
  7. use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method;
  8. use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;use Symfony\Component\HttpFoundation\Request;
  9. use Symfony\Component\HttpFoundation\File\File;
  10.  
  11. /**
  12.  * Blog controller.
  13.  *
  14.  * @Route("blog")
  15.  */
  16. class BlogController extends Controller
  17. {
  18. /**
  19.   * Lists all blog entities.
  20.   *
  21.   * @Route("/blog", name="blog_index")
  22.   * @Method("GET")
  23.   */
  24. public function indexAction()
  25. {
  26. $em = $this->getDoctrine()->getManager();
  27.  
  28. $blogs = $em->getRepository('AppBundle:Blog')->findAll();
  29.  
  30. return $this->render('blog/index.html.twig', array(
  31. 'blogs' => $blogs,
  32. ));
  33. }
  34.  
  35. /**
  36.   * Creates a new blog entity.
  37.   *
  38.   * @Route("/new", name="blog_new")
  39.   * @Method({"GET", "POST"})
  40.   */
  41. public function newAction(Request $request)
  42. {
  43. $blog = new Blog();
  44. $form = $this->createForm('AppBundle\Form\BlogType', $blog);
  45. $form->handleRequest($request);
  46.  
  47. if ($form->isSubmitted() && $form->isValid()) {
  48. /**
  49.   * @var UploadedFile $file
  50.   */
  51. $file=$blog->getImage();
  52. $fileName=md5(uniqid()).'.'.$file->guessExtension();
  53.  
  54.  
  55. $file->move(
  56. $this->getParameter('image_directory'),$fileName
  57. );
  58.  
  59.  
  60. $blog->setImage($fileName);
  61. $em = $this->getDoctrine()->getManager();
  62. $em->persist($blog);
  63. $em->flush();
  64.  
  65. return $this->redirectToRoute('blog_show', array('id' => $blog->getId()));
  66. }
  67.  
  68. return $this->render('blog/new.html.twig', array(
  69. 'blog' => $blog,
  70. 'form' => $form->createView(),
  71. ));
  72. }
  73.  
  74. /**
  75.   * Finds and displays a blog entity.
  76.   *
  77.   * @Route("/{id}", name="blog_show")
  78.   * @Method("GET")
  79.   */
  80. public function showAction(Blog $blog)
  81. {
  82. $deleteForm = $this->createDeleteForm($blog);
  83.  
  84. return $this->render('blog/show.html.twig', array(
  85. 'blog' => $blog,
  86. 'delete_form' => $deleteForm->createView(),
  87. ));
  88. }
  89.  
  90. /**
  91.   * Displays a form to edit an existing blog entity.
  92.   *
  93.   * @Route("/{id}/edit", name="blog_edit")
  94.   * @Method({"GET", "POST"})
  95.   */
  96. public function editAction(Request $request, Blog $blog)
  97. {
  98.  
  99. $blog->setImage(
  100. new File($this->getParameter('image_directory').'/'.$blog->getImage())
  101.  
  102. );
  103.  
  104. $deleteForm = $this->createDeleteForm($blog);
  105. $editForm = $this->createForm('AppBundle\Form\BlogType', $blog);
  106. $editForm->handleRequest($request);
  107.  
  108. if ($editForm->isSubmitted() && $editForm->isValid()) {
  109.  
  110. $this->getDoctrine()->getManager()->flush();
  111.  
  112. return $this->redirectToRoute('blog_edit', array('id' => $blog->getId()));
  113. }
  114.  
  115. return $this->render('blog/edit.html.twig', array(
  116. 'blog' => $blog,
  117. 'edit_form' => $editForm->createView(),
  118. 'delete_form' => $deleteForm->createView(),
  119. ));
  120. }
  121.  
  122. /**
  123.   * Deletes a blog entity.
  124.   *
  125.   * @Route("/{id}", name="blog_delete")
  126.   * @Method("DELETE")
  127.   */
  128. public function deleteAction(Request $request, Blog $blog)
  129. {
  130. $form = $this->createDeleteForm($blog);
  131. $form->handleRequest($request);
  132.  
  133. if ($form->isSubmitted() && $form->isValid()) {
  134. $em = $this->getDoctrine()->getManager();
  135. $em->remove($blog);
  136. $em->flush();
  137. }
  138.  
  139. return $this->redirectToRoute('blog_index');
  140. }
  141.  
  142. /**
  143.   * Creates a form to delete a blog entity.
  144.   *
  145.   * @param Blog $blog The blog entity
  146.   *
  147.   * @return \Symfony\Component\Form\Form The form
  148.   */
  149. private function createDeleteForm(Blog $blog)
  150. {
  151. return $this->createFormBuilder()
  152. ->setAction($this->generateUrl('blog_delete', array('id' => $blog->getId())))
  153. ->setMethod('DELETE')
  154. ->getForm()
  155. ;
  156. }
  157. }
  158.  
  159.  


Wiedze czerpałem z

http://symfony.com/doc/current/controller/upload_file.html w tym artykule podają coś takiego, chciałem to dostosować do swojej aplikacji. Nie rozumiem jak mam edytowac te sciezke

  1. use Symfony\Component\HttpFoundation\File\File;
  2. // ...
  3.  
  4. $product->setBrochure(
  5. new File($this->getParameter('brochures_directory').'/'.$product->getBrochure())
  6. );
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 29.03.2024 - 06:52