如何使用Laravel 5获取HTTP主机

rvpgvaaj  于 2022-12-27  发布在  其他
关注(0)|答案(4)|浏览(193)

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

1hdlvixo

1hdlvixo1#

好消息!事实证明这其实很简单,尽管Laravel的Request文档有点欠缺(我想要的方法继承自Symfony's Request class)。如果你使用控制器方法,你可以注入request对象,它有一个getHttpHost方法。这正是我所寻找的:

public function anyMyRoute(Request $request) {
    $host = $request->getHttpHost(); // returns dev.site.com
}

在代码的任何其他地方,您仍然可以使用request helper函数访问request对象,因此如下所示:

$host = request()->getHttpHost(); // returns dev.site.com

如果你想在URL中包含http/https部分,你可以使用getSchemeAndHttpHost方法:

$host = $request->getSchemeAndHttpHost(); // returns https://dev.site.com
1cklez4t

1cklez4t2#

有两种方法,所以要小心:

<?php

    $host = request()->getHttpHost(); // With port if there is. Eg: mydomain.com:81

    $host = request()->getHost(); // Only hostname Eg: mydomain.com
f3temu5u

f3temu5u3#

laravel 5.6及以上版本

request()->getSchemeAndHttpHost()

刀片使用示例:

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

4urapxun4#

您可以使用request()->url();
您还可以转储整个request()->headers();
看看这些数据对你是否有用。

相关问题