Symfony 路由长度限制
Symfony route length restriction
是否存在路线长度要求?
例如:
我在 Stacko 上找到了这个。:
/**
* @Route("/{shortUrl}", requirements={„shortUrl" : "[a-zA-Z0-9]{8}"})
* @method({"GET"})
*/
我希望 {8} 将其限制为仅在 "shortUrl" 恰好为 8 个字符长时调用它,但这不起作用。
为了您的理解:
我构建了一个 URL-shortener,现在我面临这个问题:
当用户输入我为他创建的 URL 别名并重定向他时,将调用上面的路由,这按预期工作。
此别名由大小写字母和数字(随机)组成。
但是当他想查看他的个人资料 (localhost/profile) 时,会调用上面的路由而不是个人资料路由,尽管 "profile" 部分只有 7 个字符长。
试试这个
/**
* @Route("/{shortUrl}", requirements={"shortLink" : "^[a-zA-Z0-9]{8}$"})
* @method({"GET"})
*/
您需要使用正则表达式符号 ^ 和 $ 表示 "begin with" 和 "end with"。同样在您的正则表达式模式中,您忘记了用于大写匹配的 A 和 Z 之间的减号。
是否存在路线长度要求? 例如: 我在 Stacko 上找到了这个。:
/**
* @Route("/{shortUrl}", requirements={„shortUrl" : "[a-zA-Z0-9]{8}"})
* @method({"GET"})
*/
我希望 {8} 将其限制为仅在 "shortUrl" 恰好为 8 个字符长时调用它,但这不起作用。
为了您的理解:
我构建了一个 URL-shortener,现在我面临这个问题:
当用户输入我为他创建的 URL 别名并重定向他时,将调用上面的路由,这按预期工作。
此别名由大小写字母和数字(随机)组成。
但是当他想查看他的个人资料 (localhost/profile) 时,会调用上面的路由而不是个人资料路由,尽管 "profile" 部分只有 7 个字符长。
试试这个
/**
* @Route("/{shortUrl}", requirements={"shortLink" : "^[a-zA-Z0-9]{8}$"})
* @method({"GET"})
*/
您需要使用正则表达式符号 ^ 和 $ 表示 "begin with" 和 "end with"。同样在您的正则表达式模式中,您忘记了用于大写匹配的 A 和 Z 之间的减号。