我有一条带有参数{id}
的路线,我想在该路线上应用条件。仅当{id}
包含3个以上字符时,此路由才可用。我了解了in the documentation和similar question的路由条件。我尝试过的:
/**
* @Route("/{id}", name="some_route", condition="strlen(id) > 3")
*/
我还尝试使用requirements
代替condition
,并尝试使用{id}
代替id
。没运气。显示的错误是:
表达式
strlen(id) > 3
的位置1周围不存在函数“ strlen”。
如何解决此问题?
答案 0 :(得分:1)
在这种情况下,使用regular expression
是最佳选择。查看PHP文档以了解更多信息(此处为the link)。并假设您所指的字符是字母数字字符(我添加了-
和_
)。
<?php
// some code ...
/**
* @Route("/{id}", name="some_route", requirements={"id"="[a-zA-Z0-9_-]{3,}"})
*/