Foros del Web » Programando para Internet » PHP » Symfony »

Problema con variable Twig

Estas en el tema de Problema con variable Twig en el foro de Symfony en Foros del Web. Buenas, tengo un problema que no lo puedo resolver debido a que soy bastante novato en esto, en el siguiente fragmento tengo una variable de ...
  #1 (permalink)  
Antiguo 28/04/2014, 14:19
 
Fecha de Ingreso: octubre-2013
Mensajes: 35
Antigüedad: 10 años, 6 meses
Puntos: 0
Problema con variable Twig

Buenas, tengo un problema que no lo puedo resolver debido a que soy bastante novato en esto, en el siguiente fragmento tengo una variable de Twig "provinciaSeleccionada" que debo pasar a otro fragmento.
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' %}  
  16. {% endblock %}
  17.  
  18. {% block sidebar %}
  19.    {{parent()}}
  20.             {{render(controller('AvisosOfertasBundle:Page:sidebar'))}}  
  21. {% endblock %}

en el menu de "sidebar" que es este fragmento y que renderiza del render que figura en el fragmento anterior se le debe agregar a la url del link la variable "provinciaSeleccionada" para luego hacer un filtrado de avisos segun la provincia y la categoría elegida...

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

si lo hago como muestro aquí me da un error porque el fragmento de categorias no extiende la variable "provinciasSeleccionadas", si coloco el set de la variable dentro del fragmento tampoco me lo toma y por el controlador que renderiza esta vista tampoco pasa el valor de la variable, no se que diablos hacer
  #2 (permalink)  
Antiguo 28/04/2014, 15:17
Avatar de anacona16  
Fecha de Ingreso: marzo-2010
Ubicación: Bogota DC
Mensajes: 610
Antigüedad: 14 años, 1 mes
Puntos: 52
Respuesta: Problema con variable Twig

Te puede servir esto: http://symfony.com/doc/2.3/book/temp...ng-controllers
__________________
Aprendiendo!!!
  #3 (permalink)  
Antiguo 28/04/2014, 15:17
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 10 meses
Puntos: 379
Respuesta: Problema con variable Twig

necesitas pasarle la variable como parámetro, en el manual viene como hacerlo: http://symfony.com/doc/current/book/...ng-controllers
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #4 (permalink)  
Antiguo 28/04/2014, 18:14
 
Fecha de Ingreso: octubre-2013
Mensajes: 35
Antigüedad: 10 años, 6 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>

Etiquetas: variable
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:18.