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>