src/Controller/DefaultController.php line 45

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use Doctrine\ORM\EntityManagerInterface;
  4. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  5. use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
  6. use Symfony\Component\HttpFoundation\Response;
  7. use Symfony\Component\Routing\Annotation\Route;
  8. use App\Entity\Producto;
  9. use App\Entity\Configuracion;
  10. use App\Entity\Categoria;
  11. use App\Entity\Publicacion;
  12. use App\Entity\Curso;
  13. use App\Entity\AccesoDirecto;
  14. use App\Entity\Contacto;
  15. class DefaultController extends AbstractController
  16. {
  17.     private $entityManager;
  18.     //Repositorios
  19.     private $productoRepository;
  20.     private $publicacionRepository;
  21.     private $cursoRepository;
  22.     private $categoriaRepository;
  23.     private $contactoRepository;
  24.     private $accesoDirectoRepository;
  25.     private $configuracionRepository;
  26.     public function __construct(EntityManagerInterface $entityManagerParameterBagInterface $parameterBag)
  27.     {
  28.         //Doctrine
  29.         $this->entityManager $entityManager;
  30.         $this->publicacionRepository $this->entityManager->getRepository(Publicacion::class);
  31.         $this->productoRepository $this->entityManager->getRepository(Producto::class);
  32.         $this->cursoRepository $this->entityManager->getRepository(Curso::class);
  33.         $this->categoriaRepository $this->entityManager->getRepository(Categoria::class);
  34.         $this->accesoDirectoRepository $this->entityManager->getRepository(AccesoDirecto::class);
  35.         $this->configuracionRepository $this->entityManager->getRepository(Configuracion::class);
  36.         $this->contactoRepository $this->entityManager->getRepository(Contacto::class);
  37.     }
  38.     //Funcion del Index del Sitio
  39.     public function index(): Response
  40.     {
  41.         //Obtengo todos los Productos   
  42.         $productos $this->productoRepository->findByProductosDestacados();
  43.         //Obtengo las ultimas noticias
  44.         $publicaciones $this->publicacionRepository->findByUltimasNoticias();
  45.         //Obtengo todas las categorias existentes
  46.         $categorias $this->categoriaRepository->findByCategoriasActivas();
  47.         //Obtengo todos los cursos para mostrar
  48.         $cursos $this->cursoRepository->findByCursosDestacados();
  49.         $categoriasCursos $this->categoriaRepository->findByCategoriasCursos();
  50.         //Obtengo los accesos directos
  51.         $accesosDirectos $this->accesoDirectoRepository->findByAccesosActivos();
  52.         //Obtengo los Mensajes de la Home Principal
  53.         $mensajeHome $this->configuracionRepository->find(1);
  54.         //Obtengo los Contactos
  55.         $contactos $this->contactoRepository->findByContactoDestacados();
  56.         //Retorno a la vista
  57.         return $this->render(
  58.             'index.html.twig',
  59.             [
  60.                 'productos' => $productos,
  61.                 'cursos' => $cursos,
  62.                 'categoriasCursos' => $categoriasCursos,
  63.                 'publicaciones' => $publicaciones,
  64.                 'categorias' => $categorias,
  65.                 'accesosDirectos' => $accesosDirectos,
  66.                 'mensajeHome' => $mensajeHome,
  67.                 'contactos' => $contactos,
  68.             ]
  69.         );
  70.     }
  71. }