2015-12-03 2 views
0

Я использовал действие в контроллере для создания маршрутов с веб-адресов.Создать маршрут с symfony

url_proxy: 
    path: /proxy 
    defaults: { _controller: "PublicartelAppBundle:PlayContent:proxy" } 

В мой контроллер я использовал генератор фреймворка маршрутов, чтобы сделать что-то вроде этого:

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

По какой-то причине URL-адрес входит в цикл и не заканчивает загрузку. Я должен добавить свой абсолютный путь где-нибудь? – urreta17

+0

Если вы работаете из командной строки, вам нужно будет добавить свой домен явно. – Ryan

+0

Я неправильно понял ваш комментарий. Я пытаюсь из браузера, введя путь, которому назначено действие в контроллере. – urreta17

Смежные вопросы