来自常量的 Symfony 多路由需求

Symfony multiple route requirements from constants

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

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

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

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

我正在为语法苦苦挣扎。

谢谢!

在您的 class 中存储常量的地方:

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

const REQUIREMENTS = self::EN.'|'.self::FR;

然后,在你的控制器中

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