3

以这个 URL 为例:

http://website.com/test/blob/my/nice/little/branch/tests/InterfaceTest.php

在 Silex 中,它可以表示为这样的路由(只是示例代码):

$app->get('{repo}/blob/{branch}/{tree}/', function($repo, $branch, $tree) use ($app) {
    // repo = test
    // branch = my/nice/little/branch
    // tree = tests/InterfaceTest.php
})->assert('branch', '[\w-._/]+');

但是,这并没有按预期工作。有没有人对如何使它工作有任何想法?

4

2 回答 2

3

尝试这个:

$app->get('{repo}/blob/{branch}/{tree}/', function($repo, $branch, $tree) use ($app) {
     // repo = test
     // branch = my/nice/little/branch
     // tree = tests/InterfaceTest.php

})->assert('branch', '[\w\-\._/]+');

更多信息,请查看这本食谱:http ://symfony.com/doc/current/cookbook/routing/slash_in_parameter.html

于 2012-08-16T12:00:37.803 回答
2

使用这个,.+将匹配所有剩余路径

$app->get('{repo}/blob/{branch}/{tree}', function($repo, $branch, $tree) {
    return "$repo, $branch, $tree";
})->assert('branch', '.+');
于 2014-02-28T13:20:48.283 回答