Symfony

时间:2019-06-26 08:17:37

标签: symfony routing symfony4

我有一条带有参数{id}的路线,我想在该路线上应用条件。仅当{id}包含3个以上字符时,此路由才可用。我了解了in the documentationsimilar question的路由条件。我尝试过的:

/**
 * @Route("/{id}", name="some_route", condition="strlen(id) > 3")
 */

我还尝试使用requirements代替condition,并尝试使用{id}代替id。没运气。显示的错误是:

  

表达式strlen(id) > 3的位置1周围不存在函数“ strlen”。

如何解决此问题?

1 个答案:

答案 0 :(得分:1)

在这种情况下,使用regular expression是最佳选择。查看PHP文档以了解更多信息(此处为the link)。并假设您所指的字符是字母数字字符(我添加了-_)。

<?php

// some code ...

/**
 * @Route("/{id}", name="some_route", requirements={"id"="[a-zA-Z0-9_-]{3,}"})
 */