src/Controller/CourseDetailController.php line 57

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Course;
  4. use App\Entity\Group;
  5. use App\Entity\Faq;
  6. use App\Service\CourseService;
  7. use Doctrine\Persistence\ManagerRegistry;
  8. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  9. use Symfony\Component\HttpFoundation\Response;
  10. use Symfony\Component\Routing\Annotation\Route;
  11. use Symfony\Component\HttpFoundation\Session\SessionInterface;
  12. class CourseDetailController extends AbstractController
  13. {
  14.     /**
  15.      * @Route("/kurs/{id}/{name}", name="app_coure_detail")
  16.      */
  17.     public function index(ManagerRegistry $doctrineint $id): Response
  18.     {
  19.         $course $doctrine->getRepository(Course::class)->find($id);
  20.         $faq $doctrine->getRepository(Faq::class)->findAllArray();
  21.         $courseDetail $course->getCourseDetail();
  22.         $courseService = new CourseService($course);
  23.         $courseData = [
  24.             'id' => $course->getId(),
  25.             'name' => $course->getName(),
  26.             'photo' => $courseDetail->getPhoto(),
  27.             'video' => $courseDetail->getVideo(),
  28.             'duration' => $courseDetail->getDuration(),
  29.             'lessons' => $courseDetail->getLessonsInCourse(),
  30.             'description' => $courseDetail->getDescription(),
  31.             'free_lesson' => $courseDetail->getFreeLesson(),
  32.             'price' => [
  33.                 'monthly' => $course->getCoursePrice()->getMonthly(),
  34.                 'quarterly' => $course->getCoursePrice()->getQuarterly(),
  35.                 'yearly' => $course->getCoursePrice()->getYearly(),
  36.             ],
  37.             'level' => $courseService->getLevel(),
  38.             'schedule' => $courseService->getSchedule()
  39.         ];
  40.         return $this->render('course_detail/index.html.twig', [
  41.             'course' => $courseData,
  42.             'faq' => $faq
  43.         ]);
  44.     }
  45.     /**
  46.      * @Route("/kurs/{id}/{name}/{type}/harmonogram", name="course_free_group_schedule")
  47.      * @Route("/kurs/{id}/{name}/harmonogram", name="course_group_schedule")
  48.      */
  49.     public function selectGroup(ManagerRegistry $doctrineSessionInterface $sessionint $idstring $type 'regular'): Response
  50.     {
  51.         $groupList $doctrine->getRepository(Group::class)->getNewGroupsByCourseIdAndType($id$type);
  52.         $session->set('selected_course'$id);
  53.         if (count($groupList)) {
  54.             return $this->render('course_schedule/index.html.twig', [
  55.                 'groupList' => $groupList
  56.             ]);
  57.         } else {
  58.             return $this->redirectToRoute('app_sign_up', [
  59.                 'courseId' => $id,
  60.                 'type' => $type
  61.             ]);
  62.         }
  63.     }
  64. }