Utiliser des URLs

Une route permet de passer d'une URL à un nom de route (et donc une action associée). Le routage permet aussi de passer d'un nom de route à une URL, ce que nous utiliserons pour la navigation. Ainsi, changer le chemin dans les annotations mettra à jour toutes les références (contrairement à ce qui se passerait si on utilisait un chemin "en dur").

Contrôleur

<?php
<?php
namespace App\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\HttpFoundation\Response;

class PlayerController extends Controller
{
  /**
  * @Route("/player/{battletag}", name="player_show")
  */
  public function show($battletag)
  {
      $url = $this->generateUrl('player_show', array('battletag' => $battletag)); // adresse relative
      // $this->generateUrl('player_show', array('battletag' => $battletag), UrlGeneratorInterface::ABSOLUTE_URL); adresse absolue
      return new Response("Adresse de la page page courante : ".$url);
  }
}

Vue

<a href="{{ path('player_show', { 'battletag': battletag }) }}">
Lien vers le compte {{ battletag }}</a>

Exercice

Reprendre les méthodes créées dans l'exercice précédent pour y ajouter l'adresse de la page courante. Exemples :

Une fois fonctionnelle, fusionner battletag dans develop