Formation PUB030 : Laravel, 2019 Les liens et les URL

24.2 La fonction url()


La fonction d'aide url() permet d'obtenir un URL absolu (donc un URL qui inclut le nom de domaine).

On peut l'utiliser de différentes façons :

  • On peut lui passer en paramètre un URL relatif, qu'elle transformera en URL absolu.
  • On peut la faire suivre par une autre fonction pour obtenir des informations précices.
  • On peut l'appliquer à un objet de type Illuminate\Http\Request pour obtenir l'URL de la page actuelle.

Avec paramètre

Voici une technique simple pour obtenir l'URL absolu de la page d'accueil :

Contrôleur Laravel (PHP)

$url = url('/');

La variable $url contiendra une chaîne du genre https://mondomaine.com.

Pour obtenir le nom de domaine sans le protocole :

Contrôleur Laravel (PHP)

$url = parse_url(url('/'), PHP_URL_HOST);

Cette fois, la variable $url contiendra une chaîne du genre mondomaine.com.

Suivi d'une autre fonction

Lorsque la fonction url() ne contient aucun paramètre, une instance de Illuminate\Routing\UrlGenerator est retournée.

Il est possible de la faire suivre par différentes fonctions, par exemple :

  • current() pour trouver l'URL de la page actuelle.

    Contrôleur Laravel (PHP)

    $pageActuelle = url()->current();

    On obtiendrait le même résultat avec $request->url().

  • previous() pour trouver l'URL de la page d'avant.

    Contrôleur Laravel (PHP)

    $pagePrecedente = url()->previous();

  • full() pour obtenir l'URL complet de la page actuelle, incluant les paramètres.

    C'est vrai qu'avec un cadre d'application MVC, il est plutôt rare que les URL contiennent des paramètres. La réécriture d'URL fera en sorte que les informations à passer ressembleront plutôt à un dossier, par exemple https://mondomaine.com/produits/4/details.

    Il est tout de même possible de retrouver l'URL complet de la page actuelle, incluant ses paramètres :

    Contrôleur Laravel (PHP)

    $pageActuelle = url()->full();

    La variable $pageActuelle prendra une valeur du genre https://mondomaine.com/test?id=3.

    On obtiendrait le même résultat avec $request->fullUrl().

Avec Request

Il est également possible d'obtenir des informations sur l'URL courant en travaillant avec l'objet $request, qui aura été injecté dans la méthode.

Ex :

Contrôleur Laravel (PHP)

public function index(Request $request) : View

{

    ...

    $url = $request->url();

    ...

}

Si l'URL de la page est https://mondomaine.com/produits, la variable $url aura la valeur https://mondomaine.com/produits.

Pour plus d'information

« URL Generation - Accessing The Current URL ». Laravel. https://laravel.com/docs/master/urls#accessing-the-current-url

▼Publicité

Veuillez noter que le contenu de cette fiche vous est partagé à titre gracieux, au meilleur de mes connaissances et sans aucune garantie.
Merci de partager !
Soumettre