New in Symfony 4.3: Always Include Route Default Values

// a UrlGeneratorInterface instance$url = $router->generate('blog_list'); // /blog$url = $router->generate('blog_list', ['page' => 1]); // /blog/1$url = $router->generate('blog_list', ['page' => 7]); // /blog/7Although this is the desired behavior in most applications, sometimes you may prefer to always include the value of the placeholder, even when you don’t provide it while generating the URL..In Symfony 4.3 we made this possible with a new syntax for route placeholders:/** * @Route("/blog/{!page}", name="blog_list") */public function list($page = 1){ // …}The !.character before the placeholder name tells Symfony to always include its value in the generated URL, no matter if it's a default value:$url = $router->generate('blog_list'); // /blog/1$url = $router->generate('blog_list', ['page' => 1]); // /blog/1$url = $router->generate('blog_list', ['page' => 7]); // /blog/7. More details

Leave a Reply