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