Как получить во время выполнения имя маршрута в Symfony2 при использовании описания маршрутов yaml?
Здесь вы можете найти мойnвопрос по Symfony2.
Я работаю спагинация который использует имя маршрута, указанное вrouting.yml
файл.
С моей точки зрения, этот подход не является гибким и приводит к грязному коду, так как, если я изменю название маршрута, мне придется просмотреть все шаблоны Twig или PHP-файлы, чтобы обновить имя маршрута. Это нормально для небольших веб-приложений, но предоставит такую ошибку для более крупных приложений, а также потребует от разработчиков большой нагрузки.
Итак, мне было интересно передать строковую переменнуюx кPager
Объект предоставлен вышеупомянутым комплектом. Строкаx должен быть инициализирован в контроллере и должен предоставить желаемое имя маршрута, как указано вrouting.yml
файл.
Позвольте мне привести пример. Файл маршрутизации выглядит следующим образом:
<code>//routing.yml AcmeTestBundle_listall: pattern: /test/page/{page} defaults: { _controller: AcmeTestBundle:List:listall, page: 1 } requirements: page: \d+ </code>
Тогда связанный контроллер:
<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>
Затем в шаблоне ветки$pager
получает название маршрута, которое относится к вышеуказанному комплекту
<code>{% if pager.isPaginable %} {{ paginate(pager, 'AcmeTestBundle_listall') }} {% endif %} {% for item in pager.getResults %} <p>{{ item }}</p> {% endfor %} </code>
Любая идея о том, как получить «AcmeTestBundle_listall»; строковое значение во время выполнения только внутри контроллера?