Documentação do Symfony - versão 3.1
Renderizada do repositório symfony-docs-pt-BR no Github
Os parâmetros dentro da coleção defaults
não têm necessariamente que
coincidir com um placeholder na rota path
. Na verdade, você pode usar o
array defaults
para especificar parâmetros adicionais que serão então acessíveis como
argumentos no controlador:
1 2 3 4 5 6 7 | # app/config/routing.yml
blog:
path: /blog/{page}
defaults:
_controller: AppBundle:Blog:index
page: 1
title: "Hello world!"
|
1 2 3 4 5 6 7 8 9 10 11 12 13 | <!-- app/config/routing.xml -->
<?xml version="1.0" encoding="UTF-8" ?>
<routes xmlns="http://symfony.com/schema/routing"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://symfony.com/schema/routing
http://symfony.com/schema/routing/routing-1.0.xsd">
<route id="blog" path="/blog/{page}">
<default key="_controller">AppBundle:Blog:index</default>
<default key="page">1</default>
<default key="title">Hello world!</default>
</route>
</routes>
|
1 2 3 4 5 6 7 8 9 10 11 12 | // app/config/routing.php
use Symfony\Component\Routing\RouteCollection;
use Symfony\Component\Routing\Route;
$collection = new RouteCollection();
$collection->add('blog', new Route('/blog/{page}', array(
'_controller' => 'AppBundle:Blog:index',
'page' => 1,
'title' => 'Hello world!',
)));
return $collection;
|
Agora, você pode acessar esse parâmetro extra em seu controlador:
public function indexAction($page, $title)
{
// ...
}
Como você pode ver, a variável $title
nunca foi definida dentro do path da rota,
mas ainda é possível acessar seu valor dentro de seu controlador.