File(Image) on edit form Symfony 4

183
10 октября 2018, 00:20

столкнулся с проблемой что при редактировании записи с загруженным изображением, оно отсуствует и приходится заного загружать, не дело. Делал все по оф документации http://symfony.com/doc/4.0/controller/upload_file.html

Увы не вышло, вот так у меня выглядят файлы

Entity Media.php

/**
 * @ORM\Column(type="string", length=255)
 * @Assert\NotBlank(message="Please upload image")
 * @Assert\File(mimeTypes={"image/png"})
 */
private $ImageDB;

public function getImageDB()
{
    return $this->ImageDB;
}
public function setImageDB($ImageDB)
{
    $this->ImageDB = $ImageDB;
    return $this;
}

Форма MediaType.php

public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder
        ->add('ImageDB', FileType::class, array('label' => 'Image (PNG file)', "data_class" => null))
    ;
}

И сам контроллер, функция Edit MediaController.php

/**
 * @Route("/{id}/edit", name="media_edit", methods="GET|POST")
 */
public function edit(Request $request, Media $medium): Response
{
    $form = $this->createForm(MediaType::class, $medium);
    $form->handleRequest($request);
    if ($form->isSubmitted() && $form->isValid()) {
        $medium->setDateChange(new \DateTime('now', new \DateTimeZone('Europe/Moscow')));
        $medium->setLastAuthor($this->getUser()->getUsername());
        $medium->setImageDB(
            new File($this->getParameter('media_directory').'/'.$medium->getImageDB())
        );
        $this->getDoctrine()->getManager()->flush();
        return $this->redirectToRoute('media_edit', ['id' => $medium->getId()]);
    }
    return $this->render('media/edit.html.twig', [
        'medium' => $medium,
        'form' => $form->createView(),
    ]);
}

Если сделать вар_дамп New File выводит по идее как надо так же вар дамп имени и пути правильный

var_dump(new File($this->getParameter('media_directory').'/'.$medium->getImageDB())) // object(Symfony\Component\HttpFoundation\File\File)#9531 (2) { ["pathName":"SplFileInfo":private]=> string(39) "/var/www/admin-panel/public/media/1.png" ["fileName":"SplFileInfo":private]=> string(5) "1.png" }

Не могу понять в чем дело =(

var_dump($this->getParameter('media_directory').'/'.$medium->getImageDB());//string(39) "/var/www/admin-panel/public/media/1.png"

после добавления , 'required' => false теперь ошибка менее красивая

READ ALSO
Не находится нужный шаблон в теме

Не находится нужный шаблон в теме

Есть тема DFD Native для wordpress, там есть тип страниц - портфолиоЕсли создать страницу с таким урл - http://sitename

237
Не отображается изображение

Не отображается изображение

Если закомментировать header, то выведется символы изображения

171
Как из ответа json выводить только баланс

Как из ответа json выводить только баланс

Приходит ответ от сервера в формате json, надо вывести только баланс, как это сделать ?

161
Как создать XML и сжать его?

Как создать XML и сжать его?

Создаю xml таким образом

464