Ver Mensaje Individual
  #4 (permalink)  
Antiguo 28/04/2014, 18:14
nelson_nnn
 
Fecha de Ingreso: octubre-2013
Mensajes: 35
Antigüedad: 10 años, 7 meses
Puntos: 0
Respuesta: Problema con variable Twig

Bueno gente, con poco lectocomprension de ingles algo entendí de lo que me pasaron jeje no bueno me puse un rato a razonar el problema y lo que hice fue pasar por el render la variable Twig "provinciaSeleccionada", con el parametro lo que hice despues es buscar el entity que corresponde a esa variable y la rendericé hacia la plantilla de categorías donde con un if compruebo que tenga un parametro dentro de la variable "provincia" y luego con un set la guardo en una nueva variable Twig "provinciaSlug" para pasarla a la direccion url, si no hacía este proceso todo lo demas de intentar pasar la variable del controller directo a la url da puro error. No se verá muy bonito pero funcionó.
Código Twig:
Ver original
  1. {% extends '::frontend.html.twig' %}
  2.  
  3. {#variable que se captura desde la ruta#}
  4. {% set provinciaSeleccionada = app.request.attributes.get('provincia') %}
  5.  
  6.  
  7. {% block stylesheets %}{{parent()}}{% endblock %}
  8. {% block javascripts %}{{parent()}}
  9.  
  10. {% endblock %}
  11. {% block title %}Portada{% endblock %}
  12. {% block id 'portada' %}
  13.  
  14. {% block article %}
  15.    Avisos {% include 'AvisosOfertasBundle:Page:avisos.html.twig', {'provincia': provinciaSeleccionada} %}  
  16. {% endblock %}
  17.  
  18. {% block sidebar %}
  19.    {{parent()}}
  20.             {{render(controller('AvisosOfertasBundle:Page:sidebar'))}}  
  21. {% endblock %}

Código PHP:
Ver original
  1. public function sidebarAction($provincia = null){
  2.         $em = $this->getDoctrine()->getManager();
  3.         if ($provincia) {
  4.         $provinciaSingle = $em->getRepository("AvisosOfertasBundle:Provincias")->findOneBySlug($provincia);
  5.         }else{$provinciaSingle = null;}
  6.         $categorias = $em->getRepository("AvisosOfertasBundle:Categorias")->findAll();
  7.         $subcategorias = $em->getRepository("AvisosOfertasBundle:Subcategorias")->findAll();
  8.        
  9.         return $this->render("AvisosOfertasBundle:Page:sidebar.html.twig", array("categorias"=>  $categorias,
  10.                                                                                     "subcategorias" => $subcategorias,
  11.                                                                                     "provincia" => $provinciaSingle
  12.                                                                                     ));
  13.     }

Código HTML:
Ver original
  1. {%if provincia%}
  2.     {%set provinciaSlug = provincia.slug%}
  3. {%endif%}
  4. <div class="titulo-menulat">Categorías</div>
  5.     <div class="menu-lat">
  6.         <ul class="navegador" id="menu">
  7.            {% for categoria in categorias %}    
  8.                 <li class="menu-item"><a href="#" class="desplegable" title="menu">{{categoria.categoria}}</a>
  9.                      <ul class="subnavegador" id="subnavegador">
  10.                   {% for subcategoria in subcategorias %}
  11.                     {%if categoria.idcategoria == subcategoria.categoria.idcategoria %}  
  12.                              <li class="submenu-item"><a href="{{url('avisos_filtrados',{'provincia':provinciaSlug,'idsubcat':subcategoria.idsubcategoria, 'subcat':subcategoria.slug})}}"  title="{{subcategoria.idsubcategoria}}">{{subcategoria.subcategoria}}</a></li>
  13.                     {%endif%}  
  14.                   {% endfor %}
  15.                      </ul>
  16.                </li>    
  17.              {% endfor %}
  18.        </ul>
  19.     </div>