src/Controller/CourseController.php line 25

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Course;
  4. use App\Form\CourseType;
  5. use App\Repository\CourseRepository;
  6. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  7. use Symfony\Component\HttpFoundation\Request;
  8. use Symfony\Component\HttpFoundation\Response;
  9. use Symfony\Component\Routing\Annotation\Route;
  10. use App\Service\Breadcrumbs;
  11. #[Route('/course')]
  12. class CourseController extends AbstractController
  13. {
  14.     private $breadcrumbs;
  15.     public function __construct(Breadcrumbs $breadcrumbs)
  16.     {
  17.         $this->breadcrumbs = $breadcrumbs;
  18.     }
  19.     
  20.     #[Route('/', name: 'app_course_index', methods: ['GET'])]
  21.     public function index(CourseRepository $courseRepository): Response
  22.     {
  23.         return $this->render('course/index.html.twig', [
  24.             'courses' => $courseRepository->findAll(),
  25.         ]);
  26.     }
  27.     #[Route('/new', name: 'app_course_new', methods: ['GET', 'POST'])]
  28.     public function new(Request $request, CourseRepository $courseRepository): Response
  29.     {
  30.         $course = new Course();
  31.         $form = $this->createForm(CourseType::class, $course);
  32.         $form->handleRequest($request);
  33.         if ($form->isSubmitted() && $form->isValid()) {
  34.             $courseRepository->add($course, true);
  35.             return $this->redirectToRoute('app_course_index', [], Response::HTTP_SEE_OTHER);
  36.         }
  37.         return $this->renderForm('course/new.html.twig', [
  38.             'course' => $course,
  39.             'form' => $form,
  40.         ]);
  41.     }
  42.     #[Route('/{id}/edit', name: 'app_course_edit', methods: ['GET', 'POST'])]
  43.     public function edit(Request $request, Course $course, CourseRepository $courseRepository): Response
  44.     {
  45.         $form = $this->createForm(CourseType::class, $course);
  46.         $form->handleRequest($request);
  47.         if ($form->isSubmitted() && $form->isValid()) {
  48.             $courseRepository->add($course, true);
  49.             return $this->redirectToRoute('app_course_index', [], Response::HTTP_SEE_OTHER);
  50.         }
  51.         return $this->renderForm('course/edit.html.twig', [
  52.             'course' => $course,
  53.             'form' => $form,
  54.             'breadcrumbs' => $this->breadcrumbs->createFor($course)
  55.         ]);
  56.     }
  57.     #[Route('/{id}', name: 'app_course_delete', methods: ['POST'])]
  58.     public function delete(Request $request, Course $course, CourseRepository $courseRepository): Response
  59.     {
  60.         if ($this->isCsrfTokenValid('delete'.$course->getId(), $request->request->get('_token'))) {
  61.             $courseRepository->remove($course, true);
  62.         }
  63.         return $this->redirectToRoute('app_course_index', [], Response::HTTP_SEE_OTHER);
  64.     }
  65. }