podczas tworzenia formularza do edycji już istniejącego elementu formularz napotkałem na problem, że formularz nadal oczekuje instancji pliku.
Formularz:
<?php namespace App\Form; use App\Entity\Post; use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\Extension\Core\Type\DateType; use Symfony\Component\Form\Extension\Core\Type\FileType; use Symfony\Component\Form\Extension\Core\Type\SubmitType; use Symfony\Component\Form\Extension\Core\Type\TextareaType; use Symfony\Component\Form\Extension\Core\Type\TextType; use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\OptionsResolver\OptionsResolver; class PostType extends AbstractType { { $builder ->add('title', TextType::class, ['label' => 'Tytuł']) ->add('subtitle', TextType::class, ['label' => 'Podtytuł']) ->add('description', TextareaType::class, ['label' => 'Opis']) ->add('contents', TextareaType::class, ['label' => 'treć']) ->add('date', DateType::class, ['label' => 'Data']) ->add('author', TextType::class, ['label' => 'Autor']) ->add('submit', SubmitType::class, ['label' => 'Dodaj']) ; } public function configureOptions(OptionsResolver $resolver) { $resolver->setDefaults(['data_class' => Post::class]); } }
Entity: (skrócone tylko do dotyczącego problemu)
<?php namespace App\Entity; use Doctrine\ORM\Mapping as ORM; use Gedmo\Mapping\Annotation as Gedmo; /** * @ORM\Entity(repositoryClass="App\Repository\PostRepository") */ class Post { /** * @ORM\Column(type="string") * * @Assert\NotBlank(message="Please, upload the product brochure as a JPG file.") * @Assert\File(mimeTypes={ "image/jpeg" }) */ private $image; public function getImage() { return $this->image; } public function setImage($image) { $this->image = $image; return $this; } }
Controller: (skrócone tylko do dotyczącego problemu)
/** * @Route("/edit/{slug}", name="edit_post") * @param Request $request * @param Post $post * @return Response */ public function editAction(Request $request, Post $post) { $post->setImage( ); $editForm = $this->createForm(PostType::class, $post); if ($request->isMethod('post')) { $editForm->handleRequest($request); $entityManager = $this->getDoctrine()->getManager(); $entityManager->persist($post); $entityManager->flush(); return $this->redirectToRoute('blog_single', ['slug' => $post->getSlug()]); } return $this->render('actionBlog/edit.html.twig', [ 'editForm' => $editForm->createView(), ]); }
Dodam tylko, że jak dam
To plik img jest widoczny! Tylko dlaczego nie ładuje go do formularza??
Tak samo w profilerze plik jest widoczny
Jak ktoś już uświadczył podobnego problemu bardzo proszę o pomoc.