如何使用Laravel 5获取HTTP主机
我正在尝试使用Laravel 5从HTTP请求中获取主机名,包括子域(例如,)。我在文档中找不到任何关于此的内容,但我认为这应该非常简单。有人知道如何做到这一点吗?dev.site.com
我正在尝试使用Laravel 5从HTTP请求中获取主机名,包括子域(例如,)。我在文档中找不到任何关于此的内容,但我认为这应该非常简单。有人知道如何做到这一点吗?dev.site.com
好消息!事实证明,这实际上很容易,尽管Laravel的请求文档有点缺乏(我想要的方法继承自Symfony的请求
类)。如果您使用的是控制器方法,则可以注入具有方法的请求对象。这恰恰提供了我一直在寻找的东西:getHttpHost
public function anyMyRoute(Request $request) {
$host = $request->getHttpHost(); // returns dev.site.com
}
从代码中的其他任何位置,您仍然可以使用请求帮助程序函数访问请求
对象,因此如下所示:
$host = request()->getHttpHost(); // returns dev.site.com
如果要包含 URL 的 http/https 部分,则可以改用以下方法:getSchemeAndHttpHost
$host = $request->getSchemeAndHttpHost(); // returns https://dev.site.com
我花了一些时间挖掘源代码才能找到它,所以我希望它有所帮助!
有两种方法,所以要小心:
<?php
$host = request()->getHttpHost(); // With port if there is. Eg: mydomain.com:81
$host = request()->getHost(); // Only hostname Eg: mydomain.com