Gérer efficacement les ressources dans une application web peut être complexe sans un cadre organisé.
Sans un système structuré, la gestion des actions CRUD devient difficile, entraînant des erreurs et une maintenance compliquée.
Laravel propose une approche simplifiée avec les contrôleurs RESTful et les routes associées, facilitant la gestion des ressources.
Initiez-vous à Laravel et réalisez votre première application en toute confiance.
Dans cette section, nous allons aborder la création d’un contrôleur RESTful pour gérer les ressources liées aux articles, ainsi que la liaison de ce contrôleur à des routes dans Laravel.
Créer un contrôleur RESTful Laravel
Laravel propose une méthode simplifiée pour créer un contrôleur RESTful via la commande Artisan. Un contrôleur de type « resource » est un contrôleur qui suit les conventions REST et permet de gérer les actions CRUD (Create, Read, Update, Delete).
Pour créer un contrôleur RESTful, vous utilisez la commande suivante dans votre terminal :
php artisan make:controller ArticleController --resource
Cela va générer un fichier ArticleController dans le répertoire app/Http/Controllers , avec les méthodes par défaut pour chaque action d’un contrôleur RESTful (index, create, store, show, edit, update, destroy).
Création rapide avec Artisan : Utiliser la commande php artisan make:controller –resource vous permet de générer rapidement un contrôleur avec toutes les méthodes nécessaires pour gérer les ressources. Cela économise du temps et assure que toutes les méthodes de gestion des actions CRUD sont présentes.
Contenu de l'ArticleController Laravel
Une fois le contrôleur créé, voici à quoi il ressemble avec toutes les méthodes par défaut générées par Laravel :
Chaque méthode correspond à une action spécifique dans le cycle de vie d’une ressource, comme l’affichage d’un formulaire (create), l’enregistrement dans la base de données (store), ou la suppression (destroy).
Laravel utilise le modèle Article par défaut pour les actions, ce qui vous permet d’interagir facilement avec la base de données.
Ajouter des routes avec Route::resource()
Une fois le contrôleur créé, il vous suffit d’ajouter les routes correspondantes dans le fichier routes/web.php. Laravel fournit une méthode spéciale Route::resource() qui lie toutes les routes RESTful à un contrôleur en une seule ligne de code.
use App\Http\Controllers\ArticleController;
Route::resource('articles', ArticleController::class);
Cette ligne de code crée automatiquement toutes les routes nécessaires pour gérer les articles, en respectant les conventions REST. Voici les routes générées par Route::resource() pour un contrôleur ArticleController :
Méthode HTTP | Route | Action | Nom de la route |
---|---|---|---|
GET | /articles | index | articles.index |
GET | /articles/create | create | articles.create |
POST | /articles | store | articles.store |
GET | /articles/{article} | show | articles.show |
GET | /articles/{article}/edit | edit | articles.edit |
PUT/PATCH | /articles/{article} | update | articles.update |
DELETE | /articles/{article} | destroy | articles.destroy |
Ne pas avoir défini les méthodes du contrôleur : Si vous oubliez de définir certaines méthodes dans votre contrôleur, comme store ou destroy, vous obtiendrez une erreur lorsque vous essayez de visiter les routes correspondantes.
Actions CRUD via routes Laravel
Maintenant que les routes sont définies et liées au contrôleur, vous pouvez accéder aux différentes actions du contrôleur en visitant les URLs appropriées :
- GET /articles pour lister tous les articles
- GET /articles/create pour afficher le formulaire de création
- POST /articles pour enregistrer un nouvel article
- GET /articles/{article} pour afficher un article spécifique
- GET /articles/{article}/edit pour éditer un article
- PUT/PATCH /articles/{article} pour mettre à jour un article
- DELETE /articles/{article} pour supprimer un article
Par exemple lorsqu’en teste cette url http://127.0.0.1:8000/articles en trouve ce résultat :
Et aussi pour cela http://127.0.0.1:8000/articles/5 en trouve :
Les noms des routes : Laravel génère des noms pour chaque route, ce qui permet de les référencer facilement dans vos vues, contrôleurs ou tests en utilisant des fonctions comme route().
Routes RESTful partielles Laravel
Lors de la déclaration d’une route de ressources, vous pouvez spécifier un sous-ensemble d’actions que le contrôleur doit gérer au lieu de l’ensemble complet d’actions par défaut :
Route::resource('articles', ArticleController::class)->only([
'index', 'show'
]);
Route::resource('articles', ArticleController::class)->except([
'create', 'store', 'update', 'destroy'
]);
Résumé du contrôleur Laravel RESTful
- Créer un contrôleur resource :Utilisez la commande Artisan pour générer un contrôleur RESTful avecphp artisan make:controller ArticleController –resource.
- Relier les routes au contrôleur :UtilisezRoute::resource()pour lier toutes les routes RESTful à un contrôleur en une seule ligne de code.
- Accéder aux actions du contrôleur :Chaque action dans le contrôleur correspond à une route spécifique pour gérer les articles dans l’application Laravel.
Formez-vous gratuitement avec Alphorm !
Maîtrisez les compétences clés en IT grâce à nos formations gratuites et accélérez votre carrière dès aujourd'hui.
FAQ
Comment créer un contrôleur RESTful dans Laravel ?
Quelles sont les routes générées par Route::resource() ?
Comment lier un contrôleur aux routes dans Laravel ?
Quelles erreurs éviter lors de la création d'un contrôleur RESTful ?
Comment gérer un sous-ensemble d'actions dans un contrôleur resource ?
Conclusion
La création d’un contrôleur RESTful dans Laravel et la gestion de ses routes est un processus essentiel pour développer des applications web robustes. Quelle est votre prochaine étape dans l’exploration des fonctionnalités avancées de Laravel ?