symfony Location -- как в symfony получить протокол и хост
Primary tabs
Для увеличения "переносимости" проекта, его универальности рекомендуется все пути создавать "динамически", используя различные методы, а не хардкодить.
Допустим, нам требуется передать заголовок Location с абсолютным адресом страницы:
return new Response (['Location' => 'http://my.domen.name/path/in/application']);
Как это сделать
В Symfony (в контроллере):
- Получить протокол (Http) можно так:
$request->getScheme();
- Получить доменное имя (my.domen.name) можно так:
$request->getHost();
- Также можно достать название протокола и домен одновременно:
$request->getSchemeAndHttpHost();
- Получить путь внутри приложения (/path/in/application) можно по его атрибуту "name" (который можно установить, используя маршрутизацию с помощью аннотаций), вытащив метод генерации URL из базового redirectToRoute():
$this->generateUrl('registration');
Итого, у меня получилось так:
return new Response (['Location' =>$request->getSchemeAndHttpHost() . $this->generateUrl('registration')]);
Happy codding ♥)
- Log in to post comments
- 6731 reads
vedro-compota
Thu, 11/23/2017 - 12:16
Permalink
оформление
к сожалению движок в данный момент разворачивает url в html и потому просто кодом их оформлять не получается.
_____________
матфак вгу и остальная классика =)
vedro-compota
Thu, 11/23/2017 - 12:34
Permalink
абсолютные адреса -- только для других ресурсов.
при создании движка важно помнить, что абсолютные адреса используются только для ссылок на другие сайты.
Иначе у вас будут проблемы, например при развороте системы.
_____________
матфак вгу и остальная классика =)
melisa
Thu, 11/23/2017 - 17:56
Permalink
решение
в этой статье как раз и указывается решние данной проблемы