J'essaie d'obtenir le nom d'hôte à partir d'une requête HTTP utilisant Laravel 5, y compris le sous-domaine (par exemple, dev.site.com
). Je ne trouve rien à ce sujet dans les docs , mais je pense que cela devrait être assez simple. Quelqu'un sait-il comment faire ça?
Bonnes nouvelles! La documentation de Request manque un peu (la méthode que je souhaitais est héritée de La classe Request
de Symfony ), mais il s'avère que c'est en fait assez simple. Si vous êtes dans une méthode de contrôleur, vous pouvez injecter l'objet de requête, qui a une méthode getHttpHost
. Cela fournit exactement ce que je cherchais:
public function anyMyRoute(Request $request) {
$Host = $request->getHttpHost(); // returns dev.site.com
}
À partir de n'importe où ailleurs dans votre code, vous pouvez toujours accéder à l'objet de requête à l'aide de la fonction d'assistance request
, ainsi, cela ressemblerait à ceci:
$Host = request()->getHttpHost(); // returns dev.site.com
Si vous souhaitez inclure la partie http/https de l'URL, vous pouvez simplement utiliser la méthode getSchemeAndHttpHost
à la place:
$Host = $request->getSchemeAndHttpHost(); // returns https://dev.site.com
Il a fallu un peu de fouille dans la source pour trouver cela, alors j'espère que cela aidera!
Il y a deux façons, alors soyez prudent:
<?php
$Host = request()->getHttpHost(); // With port if there is. Eg: mydomain.com:81
$Host = request()->getHost(); // Only hostname Eg: mydomain.com
Vous pouvez utiliser request()->url();
Aussi, vous pouvez vider le request()->headers();
complet
Et voyez si ces données vous sont utiles.
request()->getSchemeAndHttpHost()
Exemple d'utilisation en lame:
{{ request()->getSchemeAndHttpHost() }}