使用symfony

时间:2015-12-03 02:46:22

标签: php symfony proxy

我在控制器中使用了一个动作来从网址生成路线。

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'在生成的路线?

1 个答案:

答案 0 :(得分:0)

您需要明确要求绝对网址。

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