Требования к маршрутизации Symfony игнорируются - PullRequest
0 голосов
/ 30 сентября 2018

В приложении Symfony 3.4 у меня есть следующее определение маршрута

/**
 * @Route("/{_locale}", name="homepage")
 *     requirements={
 *         "_locale":"de"
 *     }
 */
public function indexAction( Request $request, $_locale )
{ ... }

При вызове url

[base]/en

он все еще просто маршрутизирует маршрут, игнорируя требование _locale бытьтолько 'де'.Переключение «:» в операторе требования на «=» не помогает.

Единственное другое определение маршрута, которое у меня есть, это

/**
 * @Route("/", name="base")
 */
public function baseAction(Request $request)
{
    return $this->redirectToRoute( 'homepage', array('_locale' => 'de') );
}

Любые идеи очень приветствуются.

1 Ответ

0 голосов
/ 30 сентября 2018

Как вы можете видеть здесь , часть «требования» аннотации «Маршрут» должна находиться внутри самой аннотации «Маршрут», то есть внутри скобок.То, как вы это написали, не считается частью аннотации.

Попробуйте

/**
 * @Route("/{_locale}", name="homepage",
 *     requirements={
 *         "_locale": "de"
 *     })
 */
public function indexAction( Request $request, $_locale )
{ ... }

Редактировать: Возможно этот пример из документа Symfony 3.4 лучше, чемссылку я изначально разместил.Обратите внимание на то, как строка 7 аннотации «Маршрут» закрывается строкой 15 в скобках.

...