• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Symfony: Jak edytować editAction

Aruba Cloud VPS - 50% taniej przez 3 miesiące!
0 głosów
196 wizyt
pytanie zadane 26 sierpnia 2018 w PHP przez wanderer Gaduła (3,710 p.)

Jest problem ze ścieżką i nie wiem jak edytować akcje edytuj

 

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

 

<?php

namespace AppBundle\Controller;

use AppBundle\Entity\Blog;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\File\File;

/**
 * Blog controller.
 *
 * @Route("blog")
 */
class BlogController extends Controller
{
    /**
     * Lists all blog entities.
     *
     * @Route("/blog", name="blog_index")
     * @Method("GET")
     */
    public function indexAction()
    {
        $em = $this->getDoctrine()->getManager();

        $blogs = $em->getRepository('AppBundle:Blog')->findAll();

        return $this->render('blog/index.html.twig', array(
            'blogs' => $blogs,
        ));
    }

    /**
     * Creates a new blog entity.
     *
     * @Route("/new", name="blog_new")
     * @Method({"GET", "POST"})
     */
    public function newAction(Request $request)
    {
        $blog = new Blog();
        $form = $this->createForm('AppBundle\Form\BlogType', $blog);
        $form->handleRequest($request);

        if ($form->isSubmitted() && $form->isValid()) {
            /**
            * @var UploadedFile $file
            */
            $file=$blog->getImage();
            $fileName=md5(uniqid()).'.'.$file->guessExtension();
            
            
            $file->move(
            $this->getParameter('image_directory'),$fileName
            );
            
            
            $blog->setImage($fileName);
            $em = $this->getDoctrine()->getManager();
            $em->persist($blog);
            $em->flush();

            return $this->redirectToRoute('blog_show', array('id' => $blog->getId()));
        }

        return $this->render('blog/new.html.twig', array(
            'blog' => $blog,
            'form' => $form->createView(),
        ));
    }

    /**
     * Finds and displays a blog entity.
     *
     * @Route("/{id}", name="blog_show")
     * @Method("GET")
     */
    public function showAction(Blog $blog)
    {
        $deleteForm = $this->createDeleteForm($blog);

        return $this->render('blog/show.html.twig', array(
            'blog' => $blog,
            'delete_form' => $deleteForm->createView(),
        ));
    }

    /**
     * Displays a form to edit an existing blog entity.
     *
     * @Route("/{id}/edit", name="blog_edit")
     * @Method({"GET", "POST"})
     */
    public function editAction(Request $request, Blog $blog)
    {
        
        $blog->setImage(
    new File($this->getParameter('image_directory').'/'.$blog->getImage())
            
);
        
        $deleteForm = $this->createDeleteForm($blog);
        $editForm = $this->createForm('AppBundle\Form\BlogType', $blog);
        $editForm->handleRequest($request);

        if ($editForm->isSubmitted() && $editForm->isValid()) {
            
            $this->getDoctrine()->getManager()->flush();

            return $this->redirectToRoute('blog_edit', array('id' => $blog->getId()));
        }

        return $this->render('blog/edit.html.twig', array(
            'blog' => $blog,
            'edit_form' => $editForm->createView(),
            'delete_form' => $deleteForm->createView(),
        ));
    }

    /**
     * Deletes a blog entity.
     *
     * @Route("/{id}", name="blog_delete")
     * @Method("DELETE")
     */
    public function deleteAction(Request $request, Blog $blog)
    {
        $form = $this->createDeleteForm($blog);
        $form->handleRequest($request);

        if ($form->isSubmitted() && $form->isValid()) {
            $em = $this->getDoctrine()->getManager();
            $em->remove($blog);
            $em->flush();
        }

        return $this->redirectToRoute('blog_index');
    }

    /**
     * Creates a form to delete a blog entity.
     *
     * @param Blog $blog The blog entity
     *
     * @return \Symfony\Component\Form\Form The form
     */
    private function createDeleteForm(Blog $blog)
    {
        return $this->createFormBuilder()
            ->setAction($this->generateUrl('blog_delete', array('id' => $blog->getId())))
            ->setMethod('DELETE')
            ->getForm()
        ;
    }
}

 

komentarz 27 sierpnia 2018 przez wanderer Gaduła (3,710 p.)
Podbijam pytanie ponieważ do tej pory nie ogarnąlem tego.. : (

2 odpowiedzi

0 głosów
odpowiedź 26 sierpnia 2018 przez Ehlert Ekspert (214,270 p.)
Nic dziwnego. Konstruktor klasy File rzuca wyjątkiem kiedy plik nie istnieje. Masz możliwość ogarnąć ścieżkę, którą do niego przekazujesz, albo ująć w try catch i zwracać 404. Nie wiem jaka ma być logika.
komentarz 26 sierpnia 2018 przez wanderer Gaduła (3,710 p.)

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
 

use Symfony\Component\HttpFoundation\File\File;
// ...

$product->setBrochure(
    new File($this->getParameter('brochures_directory').'/'.$product->getBrochure())
);

 

0 głosów
odpowiedź 27 sierpnia 2018 przez wanderer Gaduła (3,710 p.)
Podbijam pytanie ponieważ do tej pory nie ogarnąlem tego.. : (

Podobne pytania

0 głosów
1 odpowiedź 224 wizyt
pytanie zadane 28 sierpnia 2018 w PHP przez wanderer Gaduła (3,710 p.)
0 głosów
2 odpowiedzi 253 wizyt
pytanie zadane 26 sierpnia 2018 w PHP przez wanderer Gaduła (3,710 p.)
+1 głos
1 odpowiedź 560 wizyt

93,093 zapytań

142,054 odpowiedzi

321,492 komentarzy

62,435 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...