Маршрут Symfony не работает по умолчанию и заканчивается /

Я начинаю работать с Symfony 3. Тестируя маршруты, я создал один со следующими значениями по умолчанию:

index:
    path:     /test/{name}
    defaults: { _controller: MainBundle:Advert:index, name: maxime }

Маршрут работает с:

  • /тест/случайное имя
  • /тест

Но не с

  • /тест/

Любая идея, почему? Благодарность


person JeanneD4RK    schedule 17.08.2017    source источник


Ответы (1)


Это задокументировано здесь https://symfony.com/doc/master/routing/Optional_placeholders.html

Маршруты с необязательными параметрами в конце не будут соответствовать запросам с косой чертой в конце (т. е. /blog/ не будет соответствовать, /blog будет соответствовать).

Если вам нужно сопоставить даже /test/, вы можете добавить следующую запись маршрута

index_trailing_slash:
    path:     /test/
    defaults: { _controller: MainBundle:Advert:index, name: maxime }
person ste    schedule 17.08.2017
comment
Но тогда параметр не будет переменным - person JeanneD4RK; 18.08.2017
comment
@Jeann да, может, потому что у вас будет 2 маршрута: первый с переменным параметром и второй с фиксированным параметром. вы даже можете удалить значение по умолчанию из первого - person ste; 18.08.2017
comment
Ok ! тогда это обходной путь. Вспомню, если понадобится. - person JeanneD4RK; 18.08.2017