Bonjour, je cherche à faire une carte interactive. Ma carte indique les sites d'escalade en France par exemple. Je veux que le popup du marqueur d'un site de la carte me renvoi sur le template de ce site qui est descriptif. Mon projet est en symfony. J'ai procédé comme suit. Dans index.htmll.twig, je colle la carte dans une balise javascript. J'essaye de boucler sur la variable 'sites' des sites d'escalade dans ma BDD via la script javascript dans le twig mais pour l'instant ca ne marche pas. Voici le code du script dans index.html.twig :
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<script>
        //definiton de la variable site dans le script
        var site = {{sites}}
 
        //on initialise la carte
        var carte = L.map('macarte').setView([48.852969, 2.349903], 5);
        //on charge les tuiles
        L.tileLayer('https://{s}.tile.openstreetmap.fr/osmfr/{z}/{x}/{y}.png', {
                // Il est toujours bien de laisser le lien vers la source des données
                attribution: 'données © <a href="//osm.org/copyright">OpenStreetMap</a>/ODbL - rendu <a href="//openstreetmap.fr">OSM France</a>',
                minZoom: 1,
                maxZoom: 20
            }).addTo(carte);
        
         var icone = L.icon({
                    iconUrl:"../img/pointeur-de-carte.png",
                    iconSize: [50, 50],
                    iconAnchor: [25, 50],
                    popupAnchor: [-2, -44],
                });
 
        // on parcours les différents sites
                   
        for ( site in sites) {
           
                // Nous définissons l'icône à utiliser pour le marqueur, sa taille affichée (iconSize), sa position (iconAnchor) et le décalage de son ancrage (popupAnchor) 
                //on crée un marqueur et on lui donne un popup
                var marqueur = L.marker([sites[site].lat, sites[site].lon],{icon:icone}).addTo(carte);
                //marqueur.bindPopup('<h3>sites</h3>');
                //marqueur.bindPopup(site);
                             
                marqueur.bindPopup(<a href="{{ path('site_show', {'id':sites.id}) }}">site</a>);
 
                
               // markerClusters.addLayer(marker); // Nous ajoutons le marqueur aux groupes
                //markerClusters.push(marqueur);
            }
                              
    </script>

J'ai l'erreur suivante
An exception has been thrown during the rendering of a template ("Notice: Array to string conversion").

Le dump dans le twig de sites marche. Je ne sais ou mettre un __toString pour faire que la conversion en string marche. Faut-il créer une fonction? Merci