#php #laravel #http #laravel-5
#php #laravel #http #laravel-5
Вопрос:
Я пытаюсь получить имя хоста из HTTP-запроса, используя Laravel 5, включая поддомен (например, dev.site.com
). Я ничего не могу найти об этом в документах, но я думаю, что это должно быть довольно просто. Кто-нибудь знает, как это сделать?
Комментарии:
1. Что вы пробовали до сих пор? Где ты застрял?
Ответ №1:
Хорошие новости! Оказывается, это на самом деле довольно просто, хотя документации по запросу Laravel немного не хватает (метод, который я хотел, унаследован от класса Symfony Request
). Если вы используете метод контроллера, вы можете ввести объект запроса, у которого есть getHttpHost
метод. Это дает именно то, что я искал:
public function anyMyRoute(Request $request) {
$host = $request->getHttpHost(); // returns dev.site.com
}
Из любого другого места в вашем коде вы все равно можете получить доступ к объекту запроса с помощью request
вспомогательной функции, так что это будет выглядеть так:
$host = request()->getHttpHost(); // returns dev.site.com
Если вы хотите включить http / https-часть URL-адреса, вы можете просто использовать этот getSchemeAndHttpHost
метод вместо:
$host = $request->getSchemeAndHttpHost(); // returns https://dev.site.com
Ответ №2:
Есть два способа, так что будьте осторожны:
<?php
$host = request()->getHttpHost(); // With port if there is. Eg: mydomain.com:81
$host = request()->getHost(); // Only hostname Eg: mydomain.com
Ответ №3:
laravel 5.6 и выше
request()->getSchemeAndHttpHost()
Пример использования в блейде :
{{ request()->getSchemeAndHttpHost() }}
Ответ №4:
Вы можете использовать request()->url();
Также вы можете сбросить полный request()->headers();
И посмотрите, полезны ли эти данные для вас.