Witam,
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\http://www.php.net/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 { public function buildForm(FormBuilderInterface $builder, http://www.php.net/array $options) { $builder ->add('title', TextType::class, ['label' => 'Tytuł']) ->add('subtitle', TextType::class, ['label' => 'Podtytuł']) ->add('image', http://www.php.net/filetype::class, ['label' => 'Zdjęcie']) ->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]); } }
<?php namespace App\Entity; use Doctrine\ORM\Mapping as ORM; use Symfony\Component\Validator\Constraints as http://www.php.net/assert; 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; } }
/** * @Route("/edit/{slug}", name="edit_post") * @param Request $request * @param Post $post * @return Response */ public function editAction(Request $request, Post $post) { $post->setImage( new http://www.php.net/file($this->getParameter('images_directory').'/'.$post->getImage()) ); $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(), ]); }
To plik img jest widoczny! Tylko dlaczego nie ładuje go do formularza??
http://www.php.net/var_dump($post);
W jaki sposób ma załadować do formularza? Co rozumiesz przez ładowanie pliku do formularza?
Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)