使用symfony生成路由
问题描述:
我在控制器中使用了一个动作来从网络地址生成路由。使用symfony生成路由
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'来生成?
答
您需要明确要求绝对URL。
$this->get('router')
->generate('url_proxy', array('url' => $url), UrlGeneratorInterface::ABSOLUTE_URL);
出于某种原因,网址进入循环,而不是完成加载。我必须在某处添加我的绝对路径? – urreta17
如果您从命令行运行,则需要明确添加域。 – Ryan
我误解了你的评论。我正在尝试从浏览器中输入在控制器中为其分配操作的路径。 – urreta17