我在控制器中使用了一个动作来从网址生成路线。
url_proxy:
path: /proxy
defaults: { _controller: "PublicartelAppBundle:PlayContent:proxy" }
在我的控制器中,我使用了symfony路由的生成器,做了类似的事情:
public function proxyAction(Request $request){
$url = $request->query->get('url');
$generateUrl = $this->get('router')->generate('url_proxy', array('url' => $url));
return new Response(file_get_contents($generateUrl));
}
然后,为了证明我做了:
http://sgc.lo/public/proxy?url=http://www.google.com
但这会产生错误:
警告:file_get_contents(/public/proxy?url=http%3A//www.google.com):无法打开流:没有此类文件或目录
我认为这是因为路径已经生成: /public/proxy?url=http%3A//www.google.com ,应该是
sgc.lo /公共/代理?URL = HTTP%3A // www.google.com
因为我可以包含前缀' sgc.lo'在生成的路线?
答案 0 :(得分:0)
您需要明确要求绝对网址。
$this->get('router')
->generate('url_proxy', array('url' => $url), UrlGeneratorInterface::ABSOLUTE_URL);