Symfony 2路由模式长度{1,}

时间:2016-04-05 07:51:21

标签: symfony routing

我找不到我的问题的答案。 我有这种路线。     pattern: /foo/{dir}/{dir1}/{ficname} 我想知道联合国是否可以做像

这样的事情
pattern: /foo/{dir}/{ficname}
    requirements:
        dir:  ([a-zA-Z]+/?)+

编辑:在我的情况下。+太过于倾向和最终([a-zA-Z] + /?)+没有实现。

最终解决方案(我选择):

pattern: /foo/{dir}/{ficname}
    requirements:
        dir:  ([^/]+)||([^/]+/[^/]+)+

校正

pattern: /foo/{dir}/{ficname}
    requirements:
        dir:  [^/]+(/[^/])*

我有一个旧解决方案的问题,当他们超过2'/',因为第二个段落找不到任何其他'/'并且+ +然后无法工作

2 个答案:

答案 0 :(得分:1)

我添加了这条路线:

dirs-filename:
    path: /foo/{dirs}/{filename}
    requirements:
        dirs: ([a-zA-Z]+/?)+

当我检查时:

bin/console router:match /foo/dir/file            # OK
bin/console router:match /foo/dir/subdir/file     # OK

我希望这可以帮到你。

答案 1 :(得分:1)

您可以使用.+正则表达式:dir: .+

请参阅this cookbook article