src/Controller/PortfolioController.php line 84

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Album;
  4. use App\Entity\Portfolio;
  5. use App\Entity\Service;
  6. use App\Entity\CategoryServices;
  7. use Doctrine\ORM\EntityManagerInterface;
  8. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  9. use Symfony\Component\HttpFoundation\Response;
  10. use Symfony\Component\HttpFoundation\Request;
  11. use Symfony\Component\Routing\Annotation\Route;
  12. use Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter;
  13. use function Symfony\Component\DependencyInjection\Loader\Configurator\service;
  14. class PortfolioController extends AbstractController
  15. {
  16.     /**
  17.      * @var EntityManagerInterface
  18.      */
  19.     private $em;
  20.     public function __construct(EntityManagerInterface $em)
  21.     {
  22.         $this->em $em;
  23.     }
  24.     /**
  25.      * @Route("/portfolio", name="albums")
  26.      * @return Response
  27.      */
  28.     public function listAlbumByServices(Request $request): Response
  29.     {
  30.         $categories $this->em->getRepository(CategoryServices::class)->findBy(['status' => 1]);
  31.         $services $this->em->getRepository(Service::class)->findBy(['status' => 1]);
  32.         $albums $this->em->getRepository(Album::class)->findBy(['status' => 1]);
  33.         //dd($services);
  34.         return $this->render('pages/index-portfolio.html.twig', [
  35.             'categories' => $categories,
  36.             'albums' => $albums,
  37.             'services' => $services,
  38.             // pré-sélection possible via /portfolio?category=photo&service=podcast
  39.             'preselectCategory' => $request->query->get('category''all'),
  40.             'preselectService' => $request->query->get('service''all'),
  41.         ]);
  42.     }
  43.     // /**
  44.     //  * @Route("/portfolio", name="albums")
  45.     //  * @return Response
  46.     //  */
  47.     // public function album(): Response {
  48.     //     $albums = $this->em->getRepository(Album::class)->findAll();
  49.     //     //dd($albums);
  50.     //     return $this->render('pages/albums.html.twig', [
  51.     //         'albums' => $albums
  52.     //     ]);
  53.     // }
  54.     /**
  55.      * @Route("/portfolio/{id}", name="album_portfolio")
  56.      * @ParamConverter("portfolio", class="App\Entity\Album")
  57.      * @return Response
  58.      */
  59.     public function portfolio(Album $album): Response
  60.     {
  61.         $portfolio $this->em->getRepository(Portfolio::class)->findBy(['album' => $album]);
  62.         return $this->render('pages/portfolio.html.twig', [
  63.             'photos' => $portfolio,
  64.             'album' => $album
  65.         ]);
  66.     }
  67.     
  68.     /**
  69.      * @Route("/portfolio/{serviceSlug}/{id}", name="portfolio_albums")
  70.      * @return Response
  71.      */
  72.     public function portfolioView(string $serviceSlugAlbum $album): Response
  73.     {
  74.         //dd($album);
  75.         $portfolio $this->em->getRepository(Portfolio::class)->findBy(['album' => $album]);
  76.         $service $this->em->getRepository(Service::class)->findOneBy(['slug' => $serviceSlug]);
  77.         return $this->render('pages/portfolio.html.twig', [
  78.             'photos' => $portfolio,
  79.             'album_name' => $service->getName(),
  80.             'album' => $album
  81.         ]);
  82.     }
  83. }