web-dev-qa-db-fra.com

Comment obtenez-vous l'hôte HTTP avec Laravel 5

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?

18
Sean the Bean

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!

43
Sean the Bean

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
2
insign

Vous pouvez utiliser request()->url();

Aussi, vous pouvez vider le request()->headers(); complet

Et voyez si ces données vous sont utiles.

0
Vivek Pandey

laravel 5.6 et plus

request()->getSchemeAndHttpHost()

Exemple d'utilisation en lame: 

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