2017-02-17 140 views
0

我的應用程序使用Silex框架在PHP Symfony上運行。Silex動態路由

v/prx/test/inttest/images/23464a230e641ca3929826a1548164cf/img/Tp31234564789.png 

該應用程序包含以下路線,在這裏:

v -> {v}, test -> {cmr}, inttest -> {page}, images/...png -> {path}:  
$app->get('/{v}/prx/{cmr}/{page}/{path}', array($container[ Controllers::CTRL], 'someProxyAction')); 

但是應用程序返回一個錯誤:

ERROR No route found for "GET /v/prx... 

的問題是,如果應用程序是被以下鏈接測試路線以正確的方式書寫。

回答

0

它正在搜索路徑v/prx/test/inttest/images,但是您給出了更多路徑描述,因此路由器無法找到此路由。你應該編碼這個字符串,因爲斜槓!

images/23464a230e641ca3929826a1548164cf/img/Tp31234564789.png 

嘗試此鏈接

v/prx/test/inttest/images%2F23464a230e641ca3929826a1548164cf%2Fimg%2FTp31234564789.png 
+0

是否有申請的路線此鏈接方式的一部分?而不是改變鏈接本身? – user3099909

+0

我不這麼認爲。因爲路由器只是做他的工作,他不會承認如果這個參數或路徑 –

+0

你在哪裏建立這個鏈接?你能提供一個代碼生成這個鏈接嗎? –

0

有你試圖做這樣的事情?

$app->get('/{v}/prx/{cmr}/{page}/{path}', array($container[ Controllers::CTRL], 'someProxyAction'))->assert('path', '.*');

我認爲,斷言應該幫助告訴解析器接受連/作爲參數