get('session'); // Pour éviter le crash, on redirige l'utilisateur s'il n'est pas connecté if (null === $session->get('user')) { return $this->redirectToRoute('login'); } // Obtention de l'objet de l'utilisateur connecté et de l'utilisateur à s'abonner $em = $this->getDoctrine()->getManager(); $repository_profile = $em->getRepository(User::class); $profile = $repository_profile->findOneBy(array('username' => $session->get('user'))); $followuser = $repository_profile->findOneBy(array('username' => $username)); // Ajout de l'abonnement dans la BDD $profile->addSubscription($followuser); $followuser->addFollower($profile); $em->persist($profile); $em->persist($followuser); $em->flush(); return $this->redirectToRoute('profile', ['username' => $username]); } #[Route('/profile/{username}/unfollow', name: 'unfollow')] public function unfollow($username): Response { $session = $this->get('session'); // Pour éviter le crash, on redirige l'utilisateur s'il n'est pas connecté if (null === $session->get('user')) { return $this->redirectToRoute('login'); } // Obtention de l'objet de l'utilisateur connecté et de l'utilisateur à se désabonner $em = $this->getDoctrine()->getManager(); $repository_profile = $em->getRepository(User::class); $profile = $repository_profile->findOneBy(array('username' => $session->get('user'))); $followuser = $repository_profile->findOneBy(array('username' => $username)); // Supression de l'abonnement de la BDD $profile->removeSubscription($followuser); $followuser->removeFollower($profile); $em->persist($profile); $em->persist($followuser); $em->flush(); return $this->redirectToRoute('profile', ['username' => $username]); } }