get('session'); // Redirection sur le login si l'utilisateur n'est pas connecté if (null === $session->get('user')) { return $this->redirectToRoute('login'); } // Création du formulaire pour envoyer un message à l'utilisateur $formBuilder = $this->createFormBuilder(); $formBuilder->add('text', \Symfony\Component\Form\Extension\Core\Type\TextType::class,['label' => 'Envoyer un message']) ->setAction($this->generateUrl('private_discussion', ['id' => $id])); $form = $formBuilder->getForm(); // Obtention de la liste des messages privées correspondant à un utilisateur $em = $this->getDoctrine()->getManager(); $repo_pd = $em->getRepository(PrivateDiscussion::class); $pd = $repo_pd->find($id); $messages = $pd->getPrivateMessages(); // Envoi des messages à $user if ($request->getMethod() == 'POST') { $form->handleRequest($request); if($form->isValid()) { $user = $em->getRepository(User::class)->findOneBy(array('username' => $session->get('user'))); $pm = new PrivateMessage(); $pm->setText($form->get('text')->getData()); $pm->setSender($user); $pm->setPrivateDiscussion($pd); $em->persist($pm); $em->flush(); } } // Affichage de la vue return $this->render('private_discussion/index.html.twig', [ 'controller_name' => 'PrivateDiscussionController', 'messages' => $messages, 'form' => $form->createView(), 'username' => $session->get('user'), ]); } }