https://apical.xyz/fiches/les_liens_et_les_url_002/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 :
$url = url('/');
La variable $url contiendra une chaîne du genre http://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 http://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 http://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 :
public function index(Request $request) : View
{
...
$url = $request->url();
...
}
Si l'URL de la page est http://mondomaine.com/produits, la variable $url aura la valeur http://mondomaine.com/produits.