Как получить во время выполнения имя маршрута в 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»; строковое значение во время выполнения только внутри контроллера?

Ответы на вопрос(1)

Ваш ответ на вопрос