Php Silex动态路由

Php Silex动态路由,php,symfony,silex,Php,Symfony,Silex,我的应用程序在带有Silex框架的PHP Symfony上运行。正在使用以下链接测试该应用程序: v/prx/test/inttest/images/23464a230e641ca3929826a1548164cf/img/Tp31234564789.png 该应用程序包含以下路径,如下所示: v -> {v}, test -> {cmr}, inttest -> {page}, images/...png -> {path}: $app->get('/{

我的应用程序在带有Silex框架的PHP Symfony上运行。正在使用以下链接测试该应用程序:

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...

问题是,路由是否以正确的方式写入。

它是在搜索路径v/prx/test/inttest/images,但您给出的比描述路由更多,所以路由器无法找到此路由。你应该对这个字符串进行编码,因为斜杠

images/23464a230e641ca3929826a1548164cf/img/Tp31234564789.png
试试这个链接

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

你试过那样做吗

$app->get('/{v}/prx/{cmr}/{page}/{path}),数组($container[ 控制器::CTRL],'someProxyAction'))->assert('path','.*)


我认为assert应该有助于告诉解析器接受/作为参数的一部分

是否有方法为该链接应用路由?而不是改变链接本身?我不这么认为。因为路由器只是做他的工作,他不知道这个参数或路径是在哪里建立这个链接的?你能提供生成此链接的代码吗?这是几个函数,一个接一个地工作,因此,更改url生成肯定不是一个选项。您是否获得了v/prx/test/inttest/images/23464a230e641ca3929826a1548164cf/img/Tp31234564789.png之类的生成结果的整个链接,或者只获得了路径类图像/23464a230e641ca3929826a1548164cf/img/Tp31234564789.png