variable route fosjsroutingbundle javascript symfony routes twig

javascript - fosjsroutingbundle - to route symfony



Generando rutas en javascript con Twig y Symfony2 (4)

Puede usar FOSJsRoutingBundle .

Un problema bastante extraño, lo siento por preguntar, soy bastante nuevo en Symfony / Twig. Mi ruta requiere un region_id obligatorio region_id :

ajax_provinces_by_region: pattern: /ajax/region/{region_id}/provinces defaults: {_controller: SWAItaliaInCifreBundle:Ajax:provincesByRegion } requirements: {region_in: /d+}

La pregunta es: ¿cómo puedo generar esta ruta en función de un elemento select en javascript (código a continuación)?

El problema es: no puedo usar los helpers de path y url de Symfony ya que requieren especificar el parámetro this.value ( this.value ) al que no puedo acceder porque es una variable de JavaScript (y Twig está compilado en el lado del servidor).

$(document).ready(function() { $(''select#regions'').change(function(){ // Make an ajax call to get all region provinces $.ajax({ url: // Generate the route using Twig helper }); }); });


Sé que es una vieja pregunta, pero en caso de que no desee instalar un paquete como FOSJsRoutingBundle, aquí hay un pequeño truco:

var url = ''{{ path("yourroute", {''region_id'': ''region_id''}) }}''; url = url.replace("region_id", this.value);

''region_id'' solo se usa como marcador de posición, luego lo reemplaza en JS con su variable actual this.value


* @Route("/{id}/edit", name="event_edit", options={"expose"=true})


url: "{{ path(''SampleBundle_route'',{''parameter'':controller_value}) }}"

Donde SampleBundle_route es una ruta válida definida en routing.yml o annotatins.

Para la prueba, escriba esto en la plantilla de rama:

<script> var url= "{{ path(''SampleBundle_route'') }}"; alert(url); </script>