Maîtrisez le routage Laravel : Établit le sujet principal et le niveau d'expertise.
Laravel : Paramètres d'itinéraire, Nommage d'itinéraire et Groupes d'itinéraires
Ce tutoriel vous guide à travers les paramètres d'itinéraire, le nommage d'itinéraire et les groupes d'itinéraire dans Laravel. Ces concepts vous permettent de définir des URL dynamiques, de les référencer facilement et d'organiser vos routes de manière efficace.
Paramètres d'itinéraire
Les paramètres d'itinéraire vous permettent de définir des segments dynamiques dans vos URL qui capturent des données variables. Ces paramètres sont ensuite accessibles dans vos méthodes de contrôleur pour gérer des requêtes spécifiques.
Syntaxe :
PHP
Route::get('utilisateurs/{id}', function ($id) {
// Accéder à la valeur du paramètre
$utilisateur = Utilisateur::find($id);
// ...
});
Dans cet exemple :
{id}
est le nom du paramètre d'itinéraire, inclus entre accolades{}
.- La fermeture
function ($id)
reçoit la valeur du paramètreid
.
Accès aux valeurs des paramètres :
- Les valeurs des paramètres sont injectées dans les arguments de votre méthode de contrôleur en fonction de leur ordre.
- Les noms des arguments n'ont pas besoin de correspondre aux noms des paramètres.
Paramètres facultatifs :
PHP
Route::get('articles/{article?}', function ($article = null) {
// $article sera null si non fourni
if ($article) {
$article = Article::find($article);
// ...
} else {
// Gérer le cas où aucun article n'est spécifié
}
});
- Utilisez un point d'interrogation
?
après le nom du paramètre pour le rendre facultatif. - Il aura une valeur par défaut de
null
s'il n'est pas fourni.
Contraintes d'expressions régulières :
PHP
Route::get('produits/{slug:^[a-z0-9-]+$}', function ($slug) {
// Autorise uniquement les slugs avec des lettres, des chiffres et des traits d'union
$produit = Produit::where('slug', $slug)->first();
// ...
});
- Définissez des contraintes à l'aide d'un deux-points
:
suivi d'une expression régulière. - Cela garantit que la valeur du paramètre correspond au modèle spécifié.
Nommage d'itinéraire
Attribuer des noms aux itinéraires facilite leur référencement tout au long de votre application, en particulier pour générer des URL, rediriger et tester.
PHP
Route::get('profil', function () {
// ...
})->name('profil');
- La méthode
->name('profil')
attribue le nom "profil" à l'itinéraire.
Génération d'URL d'itinéraire nommé :
- Utilisez la fonction d'assistance
route()
:
PHP
$urlProfil = route('profil');
- Cela génère l'URL complète de l'itinéraire nommé "profil" en fonction de la configuration de votre itinéraire et de votre domaine.
Groupes d'itinéraires
Les groupes d'itinéraires vous permettent d'organiser vos itinéraires sous des attributs partagés tels que les intergiciels, les espaces de noms ou les préfixes. Cela favorise la réutilisation du code et des définitions d'itinéraires plus propres.
Groupe de base :
PHP
Route::group(['middleware' => 'auth'], function () {
Route::get('tableau-de-bord', function () {
// Itinéraire protégé accessible uniquement aux utilisateurs authentifiés
});
Route::get('profil', function () {
// Autre itinéraire protégé
});
});
- Le premier argument de
Route::group
est un tableau d'attributs partagés. - Dans ce cas, tous les itinéraires du groupe nécessitent un middleware d'authentification.
Fonctionnalités avancées du groupe :
- Préfixes: Ajoutez un préfixe commun à tous les itinéraires du groupe :
PHP
Route::group(['prefix' => 'admin'], function () {
Route::get('utilisateurs', function () {
// URL: /admin/utilisateurs
});
Route::get('articles', function () {
// URL: /admin/articles
});
});
- Espaces de noms: Associez un espace de noms à tous les contrôleurs du groupe :
PHP
Route::group(['namespace' => 'App\Http\Controllers\Admin'], function () {
Route::get('utilisateurs', 'UtilisateursController@index');
Route::get('articles', 'ArticlesController@index');
});
- Préfixes de nom d'itinéraire: Préfixez tous les noms d'itinéraire du groupe :
PHP
Route::group(['as' => 'admin.'], function () {
Route::get('utilisateurs', function () {
// Nom de l'itinéraire : admin.utilisateurs
})->name('utilisateurs');
Route::get('articles', function () {
// Nom de l'itinéraire : admin.articles
})->name('articles');
});
Conclusion
En utilisant efficacement les paramètres d'itinéraire, le nommage d'itinéraire et les groupes d'itinéraire, vous pouvez créer une application Laravel bien structurée et maintenable avec des URL propres, une organisation efficace du code et une expérience de développement améliorée.
N'oubliez pas de vous référer à la documentation officielle de Laravel pour connaître la syntaxe et les fonctionnalités les plus récentes : https://laravel.com/docs/11.x/routing