2012-08-16 84 views
3

拿這個URL,例如:Silex路由,如何在路由變量中有斜槓?

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-._/]+'); 

然而,這並不能作爲工作預期。有沒有人有任何想法如何讓這個工作?

+0

預期「,你的意思是你正在得到一個404錯誤或究竟是什麼? – 2012-08-16 05:40:41

+0

您需要在* both *分支和樹參數中使用斜線。在這裏你只允許他們在分支。 – AdrienBrault 2012-08-16 07:42:32

回答

2

使用此,.+將匹配當你說「不爲所有工作留路徑

$app->get('{repo}/blob/{branch}/{tree}', function($repo, $branch, $tree) { 
    return "$repo, $branch, $tree"; 
})->assert('branch', '.+');