src/Controller/DefaultController.php line 30

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\HttpFoundation\Response;
  6. use Symfony\Component\Routing\Annotation\Route;
  7. use Symfony\Component\HttpFoundation\Request;
  8. use Symfony\Component\Security\Http\Authentication\AuthenticationUtils;
  9. use Symfony\Component\HttpFoundation\JsonResponse;
  10. use App\Entity\Propiedades;
  11. use App\Entity\Imagenes;
  12. use App\Entity\Regiones;
  13. use App\Entity\Modalidad;
  14. use App\Entity\TipoPropiedad;
  15. use App\Entity\Comunas;
  16. class DefaultController extends AbstractController
  17. {
  18.     private $entityManager;
  19.     public function __construct(EntityManagerInterface $entityManager)
  20.     {
  21.         $this->entityManager $entityManager;
  22.     }
  23.     /**
  24.      * @Route("/", name="inicio")
  25.      */
  26.     public function index(Request $request)
  27.     {
  28.         $bus_propiedad_tipoPropiedad $request->query->get('bus_propiedad_tipoPropiedad');
  29.         $bus_propiedad_modalidad     $request->query->get('bus_propiedad_modalidad');
  30.         $bus_propiedad_region        $request->query->get('bus_propiedad_region');
  31.         $bus_propiedad_comuna        $request->query->get('bus_propiedad_comuna');
  32.         $bus_propiedad_valor_hasta   $request->query->get('bus_propiedad_valor_hasta');    
  33.         $totalPropiedades count($this->entityManager->getRepository(Propiedades::class)->getTotalPropiedadesDestacadas());
  34.         $numPaginas =0;
  35.         if ($totalPropiedades 0) {
  36.             $numPaginas ceil($totalPropiedades 6);
  37.         }
  38.         $propiedades $this->entityManager->getRepository(Propiedades::class)->getPropiedadesDestacadas();
  39.         
  40.         $arrPropiedades = array();
  41.         foreach ($propiedades as $key => $propiedad) {
  42.             
  43.             $arrPropiedades[$key]["id"]            = $propiedad['id'];   
  44.             $arrPropiedades[$key]["titulo"]        = $propiedad['titulo'];
  45.             $arrPropiedades[$key]["valor"]         = $propiedad['valor'];
  46.             $arrPropiedades[$key]["uf"]            = $propiedad['uf'];
  47.             $arrPropiedades[$key]["banios"]        = $propiedad['numeroBanios'];
  48.             $arrPropiedades[$key]["dormitorios"]   = $propiedad['numeroDormitorios'];
  49.             $arrPropiedades[$key]["tipoPropiedad"] = $propiedad['tipo'];
  50.             $arrPropiedades[$key]["imagenes"]      = array();
  51.             $oImagenes    $this->entityManager->getRepository(Imagenes::class)->findBy(array("idPropiedad"=> $propiedad['id']));
  52.             foreach ($oImagenes as $keyimg => $img) {
  53.                 $arrPropiedades[$key]["imagenes"][$keyimg]["nombre"] = $img->getNombre();
  54.             }
  55.         } 
  56.         $oRegiones      $this->entityManager->getRepository(Regiones::class)->findAll();
  57.         $oModalidad     $this->entityManager->getRepository(Modalidad::class)->findAll();        
  58.         $oTipoPropiedad $this->entityManager->getRepository(TipoPropiedad::class)->findAll();
  59.         return $this->render('default/index.html.twig', array(
  60.                 "arrPropiedades"   => $arrPropiedades//propiedades destacadas
  61.                 "oRegiones"        => $oRegiones,
  62.                 "oModalidad"       => $oModalidad,
  63.                 "oTipoPropiedad"   => $oTipoPropiedad,
  64.                 "numPaginas"       => $numPaginas
  65.                 "totalPropiedades" => $totalPropiedades
  66.             )
  67.         );
  68.     }
  69.     /**
  70.      * @Route("/propiedades/aplicar_filtro_propiedades", options={"expose"=true}, name="propiedades_aplicar_filtro")
  71.      */
  72.     public function aplicarFiltroPropiedadesDestacadasAction(Request $request){
  73.         $pagina $request->request->get('filtro_propiedad_pagina');
  74.         $numItemPaginas   6;
  75.         $offset = ($pagina 1) * $numItemPaginas;
  76.         $propiedades $this->entityManager->getRepository(Propiedades::class)->aplicarFiltroPropiedadDestacada($numItemPaginas$offset);
  77.         $arrPropiedades = array();
  78.         foreach ($propiedades as $key => $propiedad) {
  79.             
  80.             $arrPropiedades[$key]["id"]            = $propiedad['id'];   
  81.             $arrPropiedades[$key]["titulo"]        = $propiedad['titulo'];
  82.             $arrPropiedades[$key]["valor"]         = $propiedad['valor'];
  83.             $arrPropiedades[$key]["uf"]            = $propiedad['uf'];
  84.             $arrPropiedades[$key]["banios"]        = $propiedad['numeroBanios'];
  85.             $arrPropiedades[$key]["dormitorios"]   = $propiedad['numeroDormitorios'];
  86.             $arrPropiedades[$key]["tipoPropiedad"] = $propiedad['tipo'];
  87.             $arrPropiedades[$key]["imagenes"]      = array();
  88.             $oImagenes    $this->entityManager->getRepository(Imagenes::class)->findBy(array("idPropiedad"=> $propiedad['id']));
  89.             foreach ($oImagenes as $keyimg => $img) {
  90.                 $arrPropiedades[$key]["imagenes"][$keyimg]["nombre"] = $img->getNombre();
  91.             }
  92.         } 
  93.          $totalPropiedades count($this->entityManager->getRepository(Propiedades::class)->getTotalPropiedadesDestacadas());
  94.         $numPaginas =0;
  95.         if ($totalPropiedades 0) {
  96.             $numPaginas ceil($totalPropiedades 6);
  97.         }
  98.         return $this->render('default/mostrarFiltroPropiedadesDestacadas.html.twig'
  99.             array(
  100.                 "arrPropiedades"   => $arrPropiedades,
  101.                 "numPaginas"       => $numPaginas,
  102.                 "pagina"           => $pagina
  103.             )
  104.         );
  105.     }
  106.     /**
  107.      * @Route("/propiedades/detalle/{id}", options={"expose"=true}, name="propiedad_detalle")
  108.      */
  109.     public function detallePropiedadAction(Request $request$id){
  110.         $oPropiedad $this->entityManager->getRepository(Propiedades::class)->find($id);
  111.         $oImagenes  $this->entityManager->getRepository(Imagenes::class)->findBy(array("idPropiedad"=> $oPropiedad->getId())); 
  112.         return $this->render('default/detallePropiedad.html.twig', array(
  113.                 'oPropiedad' => $oPropiedad,
  114.                 'oImagenes'  => $oImagenes
  115.             )
  116.         );
  117.     }
  118.     /**
  119.      * @Route("/propiedades/buscador", options={"expose"=true}, name="buscar_propiedad")
  120.      */
  121.     public function buscarPropiedades(Request $request){
  122.         $bus_propiedad_tipoPropiedad $request->request->get('bus_propiedad_tipoPropiedad');
  123.         $bus_propiedad_modalidad     $request->request->get('bus_propiedad_modalidad');
  124.         $bus_propiedad_region        $request->request->get('bus_propiedad_region');
  125.         $bus_propiedad_comuna        $request->request->get('bus_propiedad_comuna');
  126.         $bus_propiedad_valor_hasta   $request->request->get('bus_propiedad_valor_hasta');    
  127.         $mensaje "";
  128.         if(!empty($bus_propiedad_modalidad)){
  129.             $resultadoPropiedades $this->entityManager->getRepository(Propiedades::class)->resultadoBuscarPropiedades($bus_propiedad_tipoPropiedad$bus_propiedad_modalidad$bus_propiedad_region$bus_propiedad_comuna$bus_propiedad_valor_hasta);
  130.             // echo '<pre>';var_dump($bus_propiedad_tipoPropiedad, $bus_propiedad_modalidad, $bus_propiedad_region, $bus_propiedad_comuna, $bus_propiedad_valor_hasta);exit;
  131.             $arrPropiedades = array();
  132.             foreach ($resultadoPropiedades as $key => $propiedad) {
  133.                 
  134.                 $arrPropiedades[$key]["id"]          = $propiedad['id'];   
  135.                 $arrPropiedades[$key]["titulo"]      = $propiedad['titulo'];
  136.                 $arrPropiedades[$key]["valor"]       = $propiedad['valor'];
  137.                 $arrPropiedades[$key]["banios"]      = $propiedad['numeroBanios'];
  138.                 $arrPropiedades[$key]["dormitorios"] = $propiedad['numeroDormitorios'];
  139.                 $arrPropiedades[$key]["tipoPropiedad"] = $propiedad['tipo'];
  140.                 $arrPropiedades[$key]["imagenes"]    = array();
  141.                 $oImagenes    $this->entityManager->getRepository(Imagenes::class)->findBy(array("idPropiedad"=> $propiedad['id']));
  142.                 foreach ($oImagenes as $keyimg => $img) {
  143.                     $arrPropiedades[$key]["imagenes"][$keyimg]["nombre"] = $img->getNombre();
  144.                 }
  145.             }   
  146.         
  147.             return $this->render('default/buscarPropiedadesResultados.html.twig'
  148.                 array(
  149.                     "mensaje"        => $mensaje,
  150.                     "arrPropiedades" => $arrPropiedades
  151.                 )                
  152.             );
  153.         }else{
  154.             return $this->render('default/buscarPropiedadesResultados.html.twig'
  155.                 array(
  156.                     "mensaje" => $mensaje
  157.                 )                
  158.             );
  159.         }
  160.     }
  161.     /**
  162.      * @Route("/propiedades/cargar_comunas_buscador", options={"expose"=true}, name="cargar_comunas_buscador")
  163.      */
  164.     public function cargarComunasBuscador(Request $request){
  165.         $idRegion $request->request->get('idRegion');
  166.         $oComunas $this->entityManager->getRepository(Comunas::class)->findBy(array("idRegion" => $idRegion));
  167.         $arrComunas = array();
  168.         foreach ($oComunas as $value) {
  169.             $arrComunas[$value->getId()] = $value->getNombre();
  170.         }
  171.         return new JsonResponse($arrComunas);
  172.     }
  173. }