web-dev-qa-db-ja.com

Laravel 5でHTTPホストを取得する方法

Laravel 5、サブドメインを含むHTTP要求からホスト名を取得しようとしています(たとえば、dev.site.com)。 ドキュメント でこれについて何も見つけることができませんが、それは非常に簡単なはずです。誰もこれを行う方法を知っていますか?

21
Sean the Bean

良いニュースです! LaravelのRequestドキュメントには少し欠けていますが、これは実際には非常に簡単です(私が欲しかったメソッドは SymfonyのRequest class から継承されています)。コントローラーメソッドを使用している場合は、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

これを見つけるにはソースを少し掘り下げたので、それが役立つことを願っています!

54
Sean the Bean

二つの方法がありますので、注意してください:

<?php

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

    $Host = request()->getHost(); // Only hostname Eg: mydomain.com
4
insign

laravel 5.6以降

request()->getSchemeAndHttpHost()

ブレードでの使用例:

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

request()->url();を使用できます

また、完全なrequest()->headers();をダンプできます

そして、そのデータがあなたにとって役立つかどうかを確認してください。

0
Vivek Pandey