Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
参数为Symfony的路由条件_Symfony_Routing_Symfony4 - Fatal编程技术网

参数为Symfony的路由条件

参数为Symfony的路由条件,symfony,routing,symfony4,Symfony,Routing,Symfony4,我有一个带有参数{id}的路由,我想对其应用一个条件。只有当{id}包含的字符超过3个时,此路由才可用。我阅读了routes和a中的条件。我尝试的是: /** * @Route("/{id}", name="some_route", condition="strlen(id) > 3") */ 我还尝试使用需求而不是条件,并尝试使用{id}而不是id。运气不好。显示的错误是: 表达式strlenid>3的位置1附近不存在函数strlen 如何解决这个问题 在这种情况下,使用正则表达式

我有一个带有参数{id}的路由,我想对其应用一个条件。只有当{id}包含的字符超过3个时,此路由才可用。我阅读了routes和a中的条件。我尝试的是:

/**
 * @Route("/{id}", name="some_route", condition="strlen(id) > 3")
 */
我还尝试使用需求而不是条件,并尝试使用{id}而不是id。运气不好。显示的错误是:

表达式strlenid>3的位置1附近不存在函数strlen

如何解决这个问题

在这种情况下,使用正则表达式是最好的选择。查看PHP文档以了解更多信息。假设您所指的字符是字母数字字符,我添加了-和


试试正则表达式。将需求添加为[requirements={id=[0-9]{3}]