Insérer le nom d'un fichier dans la table entité User
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 :
Code:
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(),
]);
} |
J'ai bien essayé de passer User $user dans les paramètres de la méthode mais j'ai une erreur :
Citation:
Unable to guess how to get a Doctrine instance from the request information for parameter "user".
Voici mon formulaire au cas ou... :roll:
Code:
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,
]);
}
} |
Je vous remercie :D