Symfony 2: как заставить метод path () добавить _format? - PullRequest
3 голосов
/ 04 января 2012

У меня есть маршрут, определенный следующим образом:

my_route:
  pattern: /{name}.{_format}
  defaults: { _controller: AcmeMyBundle:Default:index, _format: html }
  requirements:
    _format: html

Проблема в том, что при использовании следующего кода в шаблоне (просмотр):

<a href="{{ path('my_route', {'name': 'my-name'}) }}">my link</a>

Сгенерированный URL:

/my-name

Но я хочу, чтобы это было:

/my-name.html

без указания в моем шаблоне ...

Есть идеи?

Спасибо за вашу помощь, Привет

Ответы [ 3 ]

3 голосов
/ 05 января 2012

Разве вы не можете иметь:

my_route:
  pattern: /{name}.html
  defaults: { _controller: AcmeMyBundle:Default:index}

А

<a href="{{ path('my_route', {'name': 'my-name'}) }}">my link</a>

даст вам URL: /my-name.html

1 голос
/ 05 января 2012

Это по замыслу.Поскольку вы определили формат по умолчанию как html, маршрутизатору не нужно создавать ссылку с расширением .html.

Если вы действительно хотите, чтобы расширение отображалось, его следует удалить изсписок defaults.Недостатком является то, что вы всегда должны указывать формат для этого маршрута.

0 голосов
/ 05 января 2012

Поможет ли это (проверено и у меня работает)?

<a href="{{ path('my_route', {'name': 'my-name'}) }}.html">my link</a>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...