Salut a tous,
Voila, je souhaite insérer en bdd le nom du fichier (image) associé a l'utilisateur connecté, fichier que je stock dans un dossier public/uploads.
Je ne sais pas comment je dois faire exactement.
Voici mon controller :
J'ai bien essayé de passer User $user dans les paramètres de la méthode mais j'ai une erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 /** * @Route("/edit", name="user_edit", methods={"GET","POST"}) * * @IsGranted("ROLE_USER") */ public function edit(Request $request, FileUploader $fileUploader): Response { $form = $this->createForm(UserType::class, $this->getUser()); $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { /** @var UploadedFile $uploadFile */ $uploadFile = $form['avatar']->getData(); if ($uploadFile) { $uploadFileName = $fileUploader->upload($uploadFile); //$user->setAvatar($uploadFileName); // Comment je fais pour insérer le nom du fichier dans ma table ? } $this->getDoctrine()->getManager()->flush(); $this->addFlash( 'info', 'Votre compte vient d\'être modifié avec succès.' ); return $this->redirectToRoute('user_edit'); } return $this->render('user/edit.html.twig', [ 'form' => $form->createView(), ]); }
Voici mon formulaire au cas ou...Unable to guess how to get a Doctrine instance from the request information for parameter "user".
Je vous remercie
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45 <?php namespace App\Form; use App\Entity\User; use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\Validator\Constraints\File; use Symfony\Component\OptionsResolver\OptionsResolver; use Symfony\Component\Form\Extension\Core\Type\FileType; class UserType extends AbstractType { public function buildForm(FormBuilderInterface $builder, array $options) { $builder ->add('firstName') ->add('lastName') ->add('email') ->add('avatar', FileType::class, [ 'mapped' => false, 'constraints' => [ new File([ 'maxSize' => '1024k', 'mimeTypes' => [ 'image/jpeg', 'image/png', ], 'mimeTypesMessage' => 'Veuillez télécharger une photo au format jpeg ou png', ]) ], 'attr' => [ 'onchange' => 'previewFile()' ] ]) ; } public function configureOptions(OptionsResolver $resolver) { $resolver->setDefaults([ 'data_class' => User::class, ]); } }![]()
Partager