来自常量的 Symfony 多路由要求

Clé*_*aud 4 annotations symfony symfony-3.4

我正在处理一个 Symfony 3.4 项目,我需要在我的路线上添加一个要求,如:

/**
 * @Route("/{_locale}", defaults={"_locale"="en"}, requirements={
 *     "_locale"="en|fr"
 * })
 */
public function homepageAction($_locale)
{
    // ...
}
Run Code Online (Sandbox Code Playgroud)

你可以看到"_locale"="en|fr",我的问题是我需要从一个常量类而不是直接在注释中获取en和获取fr

所以像 "_locale"="MY_FIRST_CONSTANTE|MY_SECOND_CONSTANTE"

我在语法上挣扎。

谢谢 !

Hug*_*tys 5

在存储常量的类中:

const EN = 'en'
const FR = 'fr'

const REQUIREMENTS = self::EN.'|'.self::FR;
Run Code Online (Sandbox Code Playgroud)

然后,在您的控制器中

/**
 * @Route("/{_locale}", defaults={"_locale"=App\Locales::EN}, requirements={
 *     "_locale"=App\Locales::REQUIREMENTS
 * })
 */
public function homepageAction($_locale)
{
    // ...
}
Run Code Online (Sandbox Code Playgroud)