Jak uzyskać w czasie wykonywania nazwę trasy w Symfony2 podczas używania opisu tras yaml?
Tutaj możesz znaleźć mojen-te pytanie dotyczące Symfony2.
Pracuję zpakiet stronicowania używa nazwy trasy podanej wrouting.yml
plik. Z mojego punktu widzenia takie podejście nie jest elastyczne i prowadzi do brudnego kodu, ponieważ jeśli zmienię nazwę trasy, to muszę spojrzeć na wszystkie szablony Twiga lub pliki PHP, aby zaktualizować nazwę trasy. Jest to w porządku dla małych aplikacji internetowych, ale zapewni taki błąd dla większych aplikacji, a także wymaga dużego obciążenia dla programisty.
Zastanawiałem się, czy przekazać zmienną łańcuchowąx doPager
obiekt dostarczony przez wyżej wymieniony pakiet. Ciągx należy zainicjować w kontrolerze i podać żądaną nazwę trasy podaną wrouting.yml
plik.
Podam przykład. Plik routingu jest następujący:
<code>//routing.yml AcmeTestBundle_listall: pattern: /test/page/{page} defaults: { _controller: AcmeTestBundle:List:listall, page: 1 } requirements: page: \d+ </code>
Następnie powiązany kontroler to:
<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>
Następnie w szablonie gałązki$pager
otrzymuje nazwę trasy, która odnosi się do powyższego pakietu
<code>{% if pager.isPaginable %} {{ paginate(pager, 'AcmeTestBundle_listall') }} {% endif %} {% for item in pager.getResults %} <p>{{ item }}</p> {% endfor %} </code>
Czy wiesz, jak uzyskać wartość ciągu „AcmeTestBundle_listall” w czasie wykonywania bezpośrednio w kontrolerze?