src/Controller/UserController.php line 19

  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Project;
  4. use App\Entity\User;
  5. use Doctrine\ORM\EntityManagerInterface;
  6. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  7. use Symfony\Component\HttpFoundation\Response;
  8. use Symfony\Component\Routing\Annotation\Route;
  9. #[Route('/teams')]
  10. class UserController extends AbstractController
  11. {
  12.     public function __construct(private readonly EntityManagerInterface $em) {}
  13.     #[Route(''name'app_teams_dsides')]
  14.     public function teamsDsides(): Response
  15.     {
  16.         $users $this->em->getRepository(User::class)->findAll();
  17.         return $this->render('home/teams.html.twig', [
  18.             'title' => "L'équipe Dsides",
  19.             'teams' => $users
  20.         ]);
  21.     }
  22.     #[Route('/hero/{slug}'name'user_page')]
  23.     public function show(User $user): Response
  24.     {
  25.         // Mieux de passer par une requête directe ? 
  26.         $projects $this->em->getRepository(Project::class)->findBy(
  27.             [],
  28.             ['displayOrder' => 'ASC']
  29.         );
  30.         $sortedProjects = [];
  31.         foreach ($projects as $project) {
  32.             if ($project->getUsers()->contains($user)) {
  33.                 $sortedProjects[] = $project;
  34.             }
  35.         }
  36.         return $this->render('project/index_topic.html.twig', [
  37.             'topic' => $user,
  38.             'projects' => $sortedProjects,
  39.         ]);
  40.     }
  41. }