你如何使用 Laravel 5 获取 HTTP 主机

新手上路,请多包涵

我正在尝试使用 Laravel 5 从 HTTP 请求中获取主机名,包括子域(例如 dev.site.com )。我在 文档 中找不到任何关于此的内容,但我认为这应该很简单。有人知道怎么做吗?

原文由 Sean the Bean 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 575
2 个回答

好消息!事实证明这实际上很容易,尽管 Laravel 的请求文档有点缺乏(我想要的方法是继承自 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

花了一些时间挖掘源代码才能找到它,所以我希望它有所帮助!

原文由 Sean the Bean 发布,翻译遵循 CC BY-SA 4.0 许可协议

laravel 5.6 及以上

request()->getSchemeAndHttpHost()

刀片使用示例:

 {{ request()->getSchemeAndHttpHost() }}

原文由 chebaby 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题