【问题标题】:Symfony route length restrictionSymfony 路由长度限制
【发布时间】:2025-12-23 23:10:11
【问题描述】:

是否存在路线长度要求? 例如: 我在 Stacko 上找到了这个。:

/**
 * @Route("/{shortUrl}", requirements={„shortUrl" : "[a-zA-Z0-9]{8}"})
 * @method({"GET"})
 */

我希望 {8} 将其限制为仅在“shortUrl”长度正好为 8 个字符时才被调用,但这不起作用。

为了您的理解:
我构建了一个 URL 缩短器,现在我遇到了这个问题:
当用户输入我的网站为他创建的 URL 别名并重定向他时,上面的路由被调用,这按预期工作。 此别名由大小写字母和数字(随机)组成。
但是当他想查看他的个人资料(本地主机/个人资料)时,会调用上面的路由而不是个人资料路由,尽管“个人资料”部分只有 7 个字符长。

【问题讨论】:

    标签: symfony routes requirements


    【解决方案1】:

    试试这个

    /**
     * @Route("/{shortUrl}", requirements={"shortLink" : "^[a-zA-Z0-9]{8}$"})
     * @method({"GET"})
     */
    

    您需要使用正则表达式符号 ^ 和 $ 来表示“开始于”和“结束于”。同样在您的正则表达式模式中,您忘记了 A 和 Z 之间的减号以进行大写匹配。

    【讨论】:

    • 谢谢!完美运行!我相应地更改了我的帖子。我投了赞成票,但这不算数,因为我是新来的。