Ответ 1
Хорошие новости! Оказывается, это на самом деле довольно просто, хотя документации по Laravel Request немного не хватает (нужный мне метод унаследован от класса Symfony Request
). Если вы находитесь в методе контроллера, вы можете внедрить объект запроса, который имеет метод getHttpHost
. Это обеспечивает именно то, что я искал:
public function anyMyRoute(Request $request) {
$host = $request->getHttpHost(); // returns dev.site.com
}
Из любого места в вашем коде вы все равно можете получить доступ к объекту запроса, используя вспомогательную функцию request
, так что это будет выглядеть так:
$host = request()->getHttpHost(); // returns dev.site.com
Если вы хотите включить в URL часть http/https, вы можете просто использовать вместо этого метод getSchemeAndHttpHost
:
$host = $request->getSchemeAndHttpHost(); // returns https://dev.site.com
Потребовалось немного покопаться в источнике, чтобы найти это, поэтому я надеюсь, что это поможет!