2015-12-03 141 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