Je suis actuellement en train de développer un site web en PHP avec Synfony, et j'aimerais savoir sous quelle forme, et comment, je dois écrire mes liens vers les autres pages.
Merci d'avance, bonne journée.
A soutenir absolument : https://www.kickstarter.com/projects/1264023666/bushido-the-way-of-men
Tout d'abord, merci pour cette réponse aussi rapide. Cependant, il faut savoir que je n'utilise pas Twig dans mon site, le trouvant plus encombrant qu'autre chose. Savez-vous la méthode à utiliser en PHP?
Merci, Ekim Shan.
A soutenir absolument : https://www.kickstarter.com/projects/1264023666/bushido-the-way-of-men
De plus, dans votre code, dans l'attribut href du lien, vous insérez du contenu Twig. Je suppose que c'est celui-ci qui représente la route, mais je ne connais pas son équivalent en PHP.
A soutenir absolument : https://www.kickstarter.com/projects/1264023666/bushido-the-way-of-men
Alors j'ai essayé la méthode d'Ymox, mais cela me retourne l'erreur "helper 'routeur' does not exists" (erreur 500). Pourtant, j'ai bien mis comme il était écrit dans l'exemple.
Quant aux URL relatives ou absolues, dans la mesure où mon site n'est pas encore propulsé, je le fait tourner sous Wamp sur ma machine perso, je suppose qu'il ne faut utiliser que des URLs relatives.
Bonne journée (ou bonne nuit).
A soutenir absolument : https://www.kickstarter.com/projects/1264023666/bushido-the-way-of-men
Sais tu te servir des outils de debug d'un navigateur ? par exemple sous Chrome, click droit de la souris et menu "inspecter". C'est un mine d'information pour savoir ce qui ne va pas ... par exemple voir la console.
Alors j'ai essayé la méthode d'Ymox, mais cela me retourne l'erreur "helper 'routeur' does not exists" (erreur 500). Pourtant, j'ai bien mis comme il était écrit dans l'exemple.
Quant aux URL relatives ou absolues, dans la mesure où mon site n'est pas encore propulsé, je le fait tourner sous Wamp sur ma machine perso, je suppose qu'il ne faut utiliser que des URLs relatives.
Bonne journée (ou bonne nuit).
Ymox t'a donné une route en exemple, qui plus est n'est pas très difficile à comprendre... Il faut juste prendre le temps de regarder comment ça fonctionne et modifier les variables nécessaires pour ton url ! Voila comment faire:
//Exemple de Ymox
<a href="<?php echo $view['router']->path('welcome') ?>">Home</a>
//pour ta route Projets
<a href="<?php echo $view['router']->path('projets') ?>">Mes projets</a>
Attention car projets de "path('projets')" ne correspond pas à ce qui est inscrit dans l'url, mais au nom unique de la fonction dans ton controller ! Je reprends un exemple du cours:
//exemple du cours SF3 d'OC
oc_platform_home:
path: /{page}
defaults:
_controller: OCPlatformBundle:Advert:index
page: 1
requirements:
page: \d*
//ici la route sera
<a href="<?php echo $view['router']->path('oc_platform_home') ?>">Ma page</a>
Alors, pour l'erreur "helper 'routeur' does not exists", j'ai trouvé. En fait, c'est moi qui est totalement aveugle : j'ai écrit "routeur" en français, au lieu de "router", en anglais!
Bon, par contre, après, cela m'affiche l'erreur :
Unable to generate a URL for the named route "/projets" as such route does not exist.
alors que j'ai bien référencé ma route dans mon "routing.yml", écrit l'action dans mon controller, et créé le fichier "projets.html.php".
Cela ne fonctionne pas. Il n'y a pas d'erreur affichée de Symfony mais l'image ne s'affiche pas. Pourtant, je suis sûr d'avoir une image de ce nom dans mon_bundle/resources/public/images.
- Edité par EkimShan 1 mars 2017 à 18:32:12
A soutenir absolument : https://www.kickstarter.com/projects/1264023666/bushido-the-way-of-men
Il faut du coup spécifier que ton image est dans ton bundle, Symfony ne peut pas le deviner. Aussi, il faut avoir "installé" les assets avec la commande assets:install. A bien refaire à chaque ajout et modification si tu es sous Windows — je ne me rappelle plus de ce qu'il faut avoir (et non faire) pour que ce ne soit pas nécessaire.
pour faire que l'installation des assets ne soit pas nécessaire à chaque changement, il faut faire un assets:install --symlink, ce que j'ai fait. Mais mon image ne s'affiche pas, tout du moins quand je met images/logo.png. par contre, si je met l'adresse depuis le répertoire web, comme ceci : bundles/HangusCorporationWebsite/images/logo.png, ça fonctionne. Mais dans ce cas-là, je ne voit pas l’intérêt d'utiliser une méthode si alambiquée, plutôt que de simplement mettre l'URL depuis le répertoire web...
Bonne journée, Ekim Shan.
A soutenir absolument : https://www.kickstarter.com/projects/1264023666/bushido-the-way-of-men
Il me semble me souvenir que tu pouvais mettre quelque chose comme @MonBundle/images/nom.extension, et que la fonction asset() traduisait justement en un chemin comme le tien… et cette dernière s'arrange surtout pour ajouter les éventuels dossiers nécessaires si Symfony n'est pas à la racine web du serveur.
Râââh, désolé, j'ai complètement oublié que tu ne l'utilisais pas
Note que logiquement, c'est bien le service de routing de Symfony derrière Twig qui entre en jeu, donc je m'attendrais à ce que ça fonctionne aussi en PHP.
Hélas, non... J'ai essayé cet après-midi, mais ça ne fonctionne pas...
A soutenir absolument : https://www.kickstarter.com/projects/1264023666/bushido-the-way-of-men
[Symfony] Comment faire des liens ?
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
</radiax>