|
|
@@ -0,0 +1,61 @@
|
|
|
+<?php
|
|
|
+
|
|
|
+namespace App\Controller;
|
|
|
+
|
|
|
+use App\Entity\Message;
|
|
|
+use App\Entity\User;
|
|
|
+use Doctrine\DBAL\Types\TextType;
|
|
|
+use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
|
|
+use Symfony\Component\HttpFoundation\Request;
|
|
|
+use Symfony\Component\HttpFoundation\Response;
|
|
|
+use Symfony\Component\HttpFoundation\Session\Session;
|
|
|
+use Symfony\Component\Routing\Annotation\Route;
|
|
|
+
|
|
|
+class HomeController extends AbstractController
|
|
|
+{
|
|
|
+ #[Route('/home', name: 'home')]
|
|
|
+ public function index(Request $request): Response
|
|
|
+ {
|
|
|
+ $session = $this->get('session');
|
|
|
+
|
|
|
+ if (null === $session->get('user')) {
|
|
|
+ return $this->redirectToRoute('home');
|
|
|
+ }
|
|
|
+
|
|
|
+ $formBuilder = $this->createFormBuilder();
|
|
|
+ $formBuilder->add('text',\Symfony\Component\Form\Extension\Core\Type\TextType::class)
|
|
|
+ ->setAction($this->generateUrl('home'));
|
|
|
+ $form = $formBuilder->getForm();
|
|
|
+
|
|
|
+ if ($request->getMethod() == 'POST') {
|
|
|
+ $form->handleRequest($request);
|
|
|
+ if ($form->isValid()) {
|
|
|
+ $session = $this->get('session');
|
|
|
+ $em = $this->getDoctrine()->getManager();
|
|
|
+ $repository_profile = $em->getRepository(User::class);
|
|
|
+ $profile = $repository_profile->findOneBy(array('username' => $session->get('user')));
|
|
|
+ $message = new Message();
|
|
|
+ $message->setText($form->get('text')->getData());
|
|
|
+ $message->setSender($profile);
|
|
|
+ $em->persist($message);
|
|
|
+ $em->flush();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ $em = $this->getDoctrine()->getManager();
|
|
|
+ $repository_profile = $em->getRepository(User::class);
|
|
|
+ $profile = $repository_profile->findOneBy(array('username' => $session->get('user')));
|
|
|
+ $subscriptions = $profile->getSubscriptions();
|
|
|
+ $msg = array();
|
|
|
+ array_push($msg, $profile->getMessages());
|
|
|
+ foreach ($subscriptions as $user) {
|
|
|
+ array_push($msg, $user->getMessages());
|
|
|
+ }
|
|
|
+
|
|
|
+ return $this->render('home/index.html.twig', [
|
|
|
+ 'controller_name' => 'HomeController',
|
|
|
+ "messages" => $msg,
|
|
|
+ 'form' => $form->createView()
|
|
|
+ ]);
|
|
|
+ }
|
|
|
+}
|