src/Controller/Frontend/MediaServerController.php line 18

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Frontend;
  3. use App\Entity\Media;
  4. use App\Entity\MediaCategorie;
  5. use App\Entity\Sejour;
  6. use Doctrine\ORM\EntityManagerInterface;
  7. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  8. use Symfony\Component\HttpFoundation\BinaryFileResponse;
  9. use Symfony\Component\HttpFoundation\Response;
  10. use Symfony\Component\Routing\Annotation\Route;
  11. use Vich\UploaderBundle\Templating\Helper\UploaderHelper;
  12. class MediaServerController extends AbstractController
  13. {
  14. #[Route('/media/{id}/{type}', name: 'app_media_server')]
  15. public function index(string $type, int $id, EntityManagerInterface $em, UploaderHelper $helper): Response
  16. {
  17. $sejour = $em->getRepository(Sejour::class)->findOneById($id);
  18. switch($type){
  19. case 'fiche_sejour':
  20. $mediaCategorie = $em->getRepository(MediaCategorie::class)->findOneByName('Fiche Séjour');
  21. }
  22. $media = $em->getRepository(Media::class)->findOneBy([
  23. 'sejour' => $sejour,
  24. 'mediaCategorie' => $mediaCategorie
  25. ]);
  26. $path = $helper->asset($media);
  27. return new BinaryFileResponse($path);
  28. return $downloadHandler->downloadObject($media,'frontend_image');
  29. }
  30. }