【问题标题】:Symfony multiple route requirements from constants来自常量的 Symfony 多路由需求
【发布时间】:2019-10-26 19:35:51
【问题描述】:

我正在做一个 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"

我在语法上苦苦挣扎。

谢谢!

【问题讨论】:

    标签: symfony annotations symfony-3.4


    【解决方案1】:

    在存储常量的类中:

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

    【讨论】:

    • 用于带“|”的需求属性
    • 你试过了吗?我有一个错误:找不到常量 AppBundle\UserRolesEnum::getRouteRequirementsForAdminToggle(它相当于我的项目中的 App\Locales::getRouteRequirements()
    • 嗯,所以你不能调用带有注释的函数,再次编辑我的答案,对不起。
    猜你喜欢
    • 1970-01-01
    • 2015-03-15
    • 1970-01-01
    • 1970-01-01
    • 2016-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多