2015-12-03 143 views
0

我在控制器中使用了一个动作来从网络地址生成路由。使用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'来生成?

回答

0

您需要明确要求绝对URL。

$this->get('router') 
    ->generate('url_proxy', array('url' => $url), UrlGeneratorInterface::ABSOLUTE_URL); 
+0

出于某种原因,网址进入循环,而不是完成加载。我必须在某处添加我的绝对路径? – urreta17

+0

如果您从命令行运行,则需要明确添加域。 – Ryan

+0

我误解了你的评论。我正在尝试从浏览器中输入在控制器中为其分配操作的路径。 – urreta17