Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在symfony中,前两个区段的路线如何与任何区段连接_Symfony_Routing - Fatal编程技术网

在symfony中,前两个区段的路线如何与任何区段连接

在symfony中,前两个区段的路线如何与任何区段连接,symfony,routing,Symfony,Routing,您好,我正在尝试在symfony 3中找到注释路由的解决方案。它用于链接位于另一个服务器临时解决方案上的图像 链接可以是: /图片/照片/1/1.jpg 或 /图片/照片/5/7/98/52/45.jpg 所以任何部分 所以,所有链接都以/images/photos/开头,但在这之后,它们可以将任何其他段作为文件的路径 我试着: /** * @Route("/images/photos/{requestAddress}", name="front.imageredirect.action")

您好,我正在尝试在symfony 3中找到注释路由的解决方案。它用于链接位于另一个服务器临时解决方案上的图像

链接可以是:

/图片/照片/1/1.jpg

/图片/照片/5/7/98/52/45.jpg

所以任何部分

所以,所有链接都以/images/photos/开头,但在这之后,它们可以将任何其他段作为文件的路径

我试着:

 /**
 * @Route("/images/photos/{requestAddress}", name="front.imageredirect.action")
 */

但是没有成功。有什么提示吗?

我不知道是否可以用注释路由实现这一点

但使用yaml配置是可能的

catch_them_all_route:
    path: '/images/photos/{catchall}'
    defaults:
        _controller: 'AppBundle:YourController:catch'
    requirements:
        catchall: ".+"
catchAction将捕获对以/images/photos开头的url的所有调用/

从这里开始,片段将包含/images/photos之后的所有部分

调用/images/photos/5/7/98/52/45.jpg的示例

$segments将被删除

5. 7. 98 52 45.jpg
我没有测试它,请告诉我是否有问题:

是的,它可以工作thx,但控制器方法中的一个注意事项是:catchAction$catchall{}。但我不确定安全性…$request->attributes->get'catchall'和catchAction$catchall是一样的。您的安全问题是什么?
public function catchAction(Request $request) { 
    $segments = [];
    if($subPath = $request->attributes->get('catchall')) {
        $segments = explode('/', $subPath);
    }
    return $this->json($segments);
}