Le routage est la porte d'entrée de votre application web. Découvrez comment définir des routes claires et expressives, les relier à des contrôleurs typés et tirer parti de la magie du Route Model Binding pour injecter vos modèles Eloquent sans effort.
Définissez vos URLs avec ->name('articles.show') et générez des liens dynamiques avec le helper route().
Syntaxe moderne [ArticleController::class, 'index'] offrant auto-complétion et refactorisation sécurisée.
Injectez show(Article $article) directement : Laravel effectue le findOrFail() et gère l'erreur 404 tout seul.
Protégez et préfixez des ensembles de routes avec Route::middleware('auth') et Route::prefix('admin').
// 1. routes/web.php : Syntaxe moderne par classe (Laravel 10 / 11)
use AppHttpControllersArticleController;
use IlluminateSupportFacadesRoute;
// Route simple vers une vue
Route::get('/', fn () => view('accueil'))->name('accueil');
// Routes de ressources (génère les 7 actions REST standard en une ligne)
Route::resource('articles', ArticleController::class);
// Groupe protégé par middleware
Route::middleware(['auth'])->prefix('admin')->name('admin.')->group(function () {
Route::get('/dashboard', [AdminController::class, 'dashboard'])->name('dashboard');
});
// 2. app/Http/Controllers/ArticleController.php
namespace AppHttpControllers;
use AppModelsArticle;
use IlluminateHttpRequest;
use IlluminateViewView;
use IlluminateHttpRedirectResponse;
class ArticleController extends Controller
{
// Liste paginée des articles
public function index(): View
{
$articles = Article::latest()->paginate(10);
return view('articles.index', compact('articles'));
}
// Affichage avec Route Model Binding automatique :
// Si l'article n'existe pas en BDD -> Laravel déclenche automatiquement une page 404 !
public function show(Article $article): View
{
return view('articles.show', compact('article'));
}
// Suppression sécurisée
public function destroy(Article $article): RedirectResponse
{
$article->delete();
return redirect()->route('articles.index')->with('success', 'Article supprimé.');
}
}Sélectionnez une requête HTTP entrante pour observer comment le routeur de Laravel fait correspondre l'URL au contrôleur approprié et résout automatiquement les modèles Eloquent.
Route::resource()| Méthode HTTP | URI | Action Contrôleur | Nom de Route | Rôle / Description |
|---|---|---|---|---|
| GET | /articles | index | articles.index | Afficher la liste de tous les articles. |
| GET | /articles/create | create | articles.create | Afficher le formulaire HTML de création. |
| POST | /articles | store | articles.store | Enregistrer un nouvel article en BDD. |
| GET | /articles/{article} | show | articles.show | Afficher un article spécifique (Route Model Binding). |
| GET | /articles/{article}/edit | edit | articles.edit | Afficher le formulaire de modification. |
| PUT/PATCH | /articles/{article} | update | articles.update | Mettre à jour l'article en BDD. |
| DELETE | /articles/{article} | destroy | articles.destroy | Supprimer l'article de la BDD. |