Tutoriel Laravel 9 #2 : Le routage

Dans la deuxième partie de ce tutoriel, nous allons nous intéresser au routage dans Laravel, qui est le point d’entrée de notre projet.

Routage de base

Le routeur le plus basique de Laravel accepte une URL et retourne une valeur. La valeur peut être une chaîne, une vue ou un contrôleur. Toutes les routes sont stockées dans routes/web.php:

<?php

Route::get('/', function () {
    return view('welcome');
});

Ce morceau de code signifie que lorsque le routeur Laravel reçoit « /« , il renvoie une vue appelée « welcome« qui est située à resources/views/welcome.blade.php.

Ouvrez le navigateur, allez à http://localhostvous obtiendrez ceci

Pour s’assurer qu’il s’agit bien de la vue renvoyée, nous apportons quelques modifications au fichier welcome.blade.php en ajoutant le code suivant quelque part dans le fichier.

<h1 style="color: white">Hello world!</h1>

Rafraîchissez le navigateur et nous pouvons voir le changement que nous venons de faire,

Nous pouvons aussi lui faire renvoyer une chaîne de caractères :

Route::get('/', function () {
    return 'Hello, World!';
});

Lorsque le routeur Laravel reçoit « /« , au lieu d’une vue, il renvoie la chaîne « Hello, World!« ,

Rafraîchissez le navigateur,

Ou nous pouvons lui faire renvoyer un contrôleur, qui pointe vers une vue. Nous parlerons des contrôleurs en détail dans le prochain article.

Route::get('/user', [UserController::class, 'index']);

Cette ligne de code signifie que si le routeur reçoit « /user », Laravel ira dans la section UserControlleret invoquera la function index. N’oubliez pas qu’il s’agit de la nouvelle syntaxe de Laravel 9. L’ancienne syntaxe ne fonctionnera pas ici !

Paramètres de route

Il est parfois nécessaire d’utiliser des segments dans une URL comme paramètres. Par exemple, imaginez que nous avons une application de blog entièrement développée et imaginez qu’un utilisateur cherche un article de blog avec le slug suivant test-post et qu’il essaie de trouver cet article en tapant http://localhost:8000/post/test-post dans son navigateur.

Pour s’assurer que l’utilisateur trouve le bon article, nous devons prendre la dernière partie de cette URL et l’envoyer au backend en tant que paramètre. Ensuite, notre contrôleur peut utiliser ce paramètre pour trouver le bon article et le renvoyer à l’utilisateur.

Pour ce faire, nous écrivons le code suivant :

Route::get('post/{slug}', [PostController::class, 'show']);

Ceci permettra au routeur de Laravel de traiter tout ce qui suit post/ comme un paramètre, et lui donne un nom slug lorsque Laravel l’envoie au backend. Les paramètres de route sont toujours encapsulés dans {} et doivent être constitués de caractères alphanumérique.

Routes nommées

Les routes nommées permettent de générer facilement des URL ou des redirections pour des routes spécifiques. Vous pouvez spécifier le nom d’une route en enchaînant l’attribut name à la définition de la route.

Route::get('user/profile', [UserController::class, 'show'])->name('profile');

Et maintenant, quand nous avons besoin d’accéder à cette URL, tout ce que nous devons faire est d’invoquer la fonction route('profile').

Bien sûr, ceci n’est qu’une introduction élémentaire au routage dans Laravel. Il y a une section entière sur le routage dans la section documentation officielle si vous êtes intéressé.

Dans le prochain article, nous étudierons la structure MVC, qui est couramment utilisée par la plupart des frameworks de développement web aujourd’hui.

Nouveau Tutoriel

Newsletter

Ne manquez jamais les nouveaux conseils, tutoriels et autres.

Pas de spam, jamais. Nous ne partagerons jamais votre adresse électronique et vous pouvez vous désabonner à tout moment.