Générer des routes en javascript avec Twig et Symfony2
tout à fait étrange problème, désolé de demander, je suis tout à fait nouveau à Symfony/brindille. Mon itinéraire nécessite obligatoirement un region_id
paramenter:
ajax_provinces_by_region:
pattern: /ajax/region/{region_id}/provinces
defaults: {_controller: SWAItaliaInCifreBundle:Ajax:provincesByRegion }
requirements: {region_in: d+}
question is: Comment puis-je générer cette route basée sur un select
élément en javascript (code ci-dessous)?
problème est: je ne peux pas utiliser path
et url
helpers de Symfony comme ils ont besoin de spécifier l' region_id
paramètre (this.value
) Je ne peux pas y accéder parce que c'est une variable javascript (et Twig est compilé côté serveur).
$(document).ready(function() {
$('select#regions').change(function(){
// Make an ajax call to get all region provinces
$.ajax({
url: // Generate the route using Twig helper
});
});
});
4 réponses
je sais que c'est une vieille question, mais juste au cas où vous ne souhaitez pas installer un bundle comme FOSJsRoutingBundle, voici un petit hack:
var url = '{{ path("yourroute", {'region_id': 'region_id'}) }}';
url = url.replace("region_id", this.value);
'region_id' est juste utilisé comme un placeholder, puis vous le remplacez dans JS avec votre variable actuelle ceci.valeur
url: "{{ path('SampleBundle_route',{'parameter':controller_value}) }}"
Où SampleBundle_route
est un chemin valide défini dans le routage.YML ou annotatins.
Pour les tests, il faut l'indiquer dans le template twig:
<script>
var url= "{{ path('SampleBundle_route') }}";
alert(url);
</script>
* @Route("/{id}/edit", name="event_edit", options={"expose"=true})