CitizenZ Accueil Blog A propos Contact Connexion
Retour à la liste des articles Symfony (5, 6) : suppression utilisateur - Erreur

Symfony (5, 6) : suppression utilisateur - Erreur

Olivier Prieur | il y a 2 ans | il y a 30 jours Développement web | 0 | 4475

Lors de la suppression d'un utilisateur sous Symfony, on peut se retrouver avec une erreur assez gênante pour l'utilisateur. Même si le user est bien supprimé de la BDD, le front affiche une jolie erreur comme suit : You cannot refresh a user from the EntityUserProvider that does not contain an identifier. The user object has to be serialized with its own identifier mapped by Doctrine. Il existe une solution en supprimant le security.token lors de la suppression. Et c'est meme compatible avec les flash messages...

Dans la fonction Delete() de UserController.php vous avez quelque chose comme ça :

#[Route('/{id}', name: 'app_user_delete', methods: ['POST'])]

     public function delete(Request $request, User $user, UserRepository $userRepository): Response

     {

         if ($this->isCsrfTokenValid('delete'.$user->getId(), $request->request->get('_token'))) {

             $userRepository->remove($user);

         }

         return $this->redirectToRoute('app_user_index', [], Response::HTTP_SEE_OTHER);

     }


Il suffit donc d'ajouter un setToken(null) lors de la suppression du user (avec un flashmessage en prime) :

#[Route('/{id}', name: 'app_user_delete', methods: ['POST'])]

     public function delete(Request $request, User $user, UserRepository $userRepository): Response

     {

         if ($this->isCsrfTokenValid('delete'.$user->getId(), $request->request->get('_token'))) {

             $this->container->get('security.token_storage')->setToken(null);

             $userRepository->remove($user, true);

         }

        $this->addFlash('deleted','Votre compte a été supprimé.');

         return $this->redirectToRoute('app_home', [], Response::HTTP_SEE_OTHER);

     }

Olivier Prieur

Olivier Prieur

Geek quinqua nivernais fan d'ovalie, de musique, de linuxeries et de Net.
Portfolio : https://www.olivierprieur.fr

Commentaires

En soumettant ce formulaire, j’accepte que ce site conserve mes données personnelles via ce formulaire. Aucune exploitation commerciale ne sera faite des données conservées.

Il n'y a actuellement aucun commentaire pour cet article

A la une

I use Debian, by the way

Lire l'article

Quelle distribution Linux ? Pour qui ? Pour quoi ?

Lire l'article

Utiliser TailwindCSS dans un projet Symfony 7

Lire l'article

Les plus lus

Symfony : barre de recherche dans la sidebar 19630

Lire l'article

Débuter avec Symfony 5 : le fichier .env 12066

Lire l'article

VSCode : 10 raccourcis clavier indispensables (Linux) 11857

Lire l'article

GIT / GITHUB : aide-mémoire pour "les nuls" 10289

Lire l'article

Les plus likés

Quelle distribution Linux ? Pour qui ? Pour quoi ?

2 Lire l'article

Symfony 7 avec Docker

1 Lire l'article

Customiser Easyadmin (2) : avec AssetMapper

1 Lire l'article