Vous souhaitez accéder aux routes dans vos fichiers javascript plutôt que de rentrer les URL à la mano, notamment pour faire de l'Ajax, voici la solution sous forme de tutoriel :
# Si vous n'avez pas composer, vous pouvez l'installer directement dans votre projet :
curl -s getcomposer.org/installer | php -d detect_unicode=Off
# Tout d'abord, il faut ajouter les lignes souivantes dans "composer.json" :
"require": { ... "friendsofsymfony/jsrouting-bundle": "~1.1" }
#Ensuite, téléchargez le composant jsrouting:
php composer.phar update friendsofsymfony/jsrouting-bundle
#Puis ajouter le routing dans votre fichier 'app/config/routing.yml'
fos_js_routing: resource: "@FOSJsRoutingBundle/Resources/config/routing/routing.xml"
#Après, il faut déclarer les routes auxquelles on souhaite accéder :
fos_js_routing: routes_to_expose: [ (.*) ]
#ici on permet l'accès à toutes les routes, sinon vous pouvez les déclarer une par une :
routes_to_expose: [ route1, route2, ... ]
# Enfin, installez les fichiers publics dans le repertoire web :
php app/console assets:install --symlink web
Voilà, il ne vous reste plus qu'à déclarer les fichiers JS dans votre layout :
<script src="{{ asset('bundles/fosjsrouting/js/router.js') }}"></script> <script src="{{ path('fos_js_routing_js', {"callback": "fos.Router.setData"}) }}"></script>
Ensuite, dans votre fichier JS, il suffit de l'appeler comme ceci :
Routing.generate('route1')
exemple avec jQuery :
$.ajax({ url: Routing.generate('route1') }).done(function(data) {...});
Articles en lien
- Symfony2 et SEO : tutorial
- Tutoriel Symfony2 et OVH : installation et configuration sur serveur mutualisé
- Symfony2 : traduire vos fichiers Javascript / translate Javascript files
- Symfony 2 : listing des lignes de commandes de base
1 commentaire