Como obter no tempo de execução o nome da rota no Symfony2 ao usar a descrição das rotas yaml?
Aqui você pode encontrar meun-a questão no Symfony2.
Estou trabalhando com umpacote de paginação que usa o nome da rota fornecido norouting.yml
Arquivo. Do meu ponto de vista, essa abordagem não é flexível e leva a um código sujo, já que, se eu alterar o nome da rota, terei que examinar todos os modelos Twig ou arquivos PHP para atualizar o nome da rota. Isso é aceitável para pequenos aplicativos da Web, mas fornecerá um erro para aplicativos maiores e também exigirá um alto ônus para o desenvolvedor.
Então, eu queria saber passar uma variável de stringx aoPager
objeto fornecido pelo pacote mencionado acima. A cordax deve ser inicializado dentro do controlador e deve fornecer o nome da rota desejada, conformerouting.yml
Arquivo.
Deixe-me dar um exemplo. O arquivo de roteamento é o seguinte:
<code>//routing.yml AcmeTestBundle_listall: pattern: /test/page/{page} defaults: { _controller: AcmeTestBundle:List:listall, page: 1 } requirements: page: \d+ </code>
Então o controlador relacionado é:
<code>//use something.... class ListController extends Controller { public function exampleAction($page) { $array = range(1, 100); $adapter = new ArrayAdapter($array); $pager = new Pager($adapter, array('page' => $page, 'limit' => 25)); return array('pager' => $pager); } } </code>
Então, no modelo de galho, o$pager
recebe o nome da rota que se refere ao pacote acima
<code>{% if pager.isPaginable %} {{ paginate(pager, 'AcmeTestBundle_listall') }} {% endif %} {% for item in pager.getResults %} <p>{{ item }}</p> {% endfor %} </code>
Alguma idéia de como obter o valor da string 'AcmeTestBundle_listall' em tempo de execução dentro do controlador?