webentwicklung-frage-antwort-db.com.de

Wie erhalten Sie den HTTP-Host mit Laravel 5?

Ich versuche, den Hostnamen von einer HTTP-Anfrage mit Laravel 5 abzurufen, einschließlich der Subdomain (z. B. dev.site.com). In den Dokumenten kann ich nichts dazu finden, aber ich denke, das sollte ziemlich einfach sein. Weiß jemand, wie das geht?

18
Sean the Bean

Gute Nachrichten! Die Request-Dokumentation fehlt etwas (die Methode, die ich wollte, wird von Symfony's Request class geerbt), aber es stellt sich heraus, dass dies ziemlich einfach ist. Wenn Sie sich in einer Controller-Methode befinden, können Sie das Anforderungsobjekt einfügen, das über eine getHttpHost-Methode verfügt. Dies bietet genau das, wonach ich gesucht habe:

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

Von jedem anderen Punkt in Ihrem Code aus können Sie weiterhin mit der request-Hilfsfunktion auf das Anforderungsobjekt zugreifen. Dies würde folgendermaßen aussehen:

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

Wenn Sie den http/https-Teil der URL einschließen möchten, können Sie stattdessen einfach die getSchemeAndHttpHost-Methode verwenden:

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

Ich habe ein bisschen durch die Quelle gesucht, um das zu finden, also hoffe ich, dass es hilft!

43
Sean the Bean

Es gibt zwei Möglichkeiten, also sei vorsichtig:

<?php

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

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

Sie können request()->url(); verwenden.

Sie können auch die komplette request()->headers(); ausgeben.

Und sehen Sie, ob diese Daten für Sie nützlich sind.

0
Vivek Pandey

laravel 5.6 und höher

request()->getSchemeAndHttpHost()

Anwendungsbeispiel in der Klinge: 

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