Laravel 5、サブドメインを含むHTTP要求からホスト名を取得しようとしています(たとえば、dev.site.com
)。 ドキュメント でこれについて何も見つけることができませんが、それは非常に簡単なはずです。誰もこれを行う方法を知っていますか?
良いニュースです! 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
これを見つけるにはソースを少し掘り下げたので、それが役立つことを願っています!
二つの方法がありますので、注意してください:
<?php
$Host = request()->getHttpHost(); // With port if there is. Eg: mydomain.com:81
$Host = request()->getHost(); // Only hostname Eg: mydomain.com
request()->getSchemeAndHttpHost()
ブレードでの使用例:
{{ request()->getSchemeAndHttpHost() }}
request()->url();
を使用できます
また、完全なrequest()->headers();
をダンプできます
そして、そのデータがあなたにとって役立つかどうかを確認してください。