来自常量的Symfony多路由要求

时间:2019-06-12 10:10:15

标签: symfony annotations symfony-3.4

我正在开发一个Symfony 3.4项目,并且需要在我的路线上添加一个要求,例如:

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

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

类似"_locale"="MY_FIRST_CONSTANTE|MY_SECOND_CONSTANTE"

我在语法上苦苦挣扎。

谢谢!

1 个答案:

答案 0 :(得分:2)

在存储常量的类中:

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)
{
    // ...
}