Laravel Résumé
Models Migration Relation
Introduction Installation Projet:Structure Strucutre,model,migration Migration,Models,Relation Artisan CLI
Les Relations
BelongsTo HasOne HasMany BelongsToMany HasManyThrough
Exemples des Relations
Relations:oneToMany,ManyToMany... Relations:Exemples
Exercices
Exercice 1 Exercice 2
Controllers Views Routes
Routes,Controller,Model,view
Les Routes
Définir:Routes Routes avec Paramètres Routes nommées Groupes de routes
Les Controllers
Les Controllers Les Contrôleurs de Ressources
Les Vues
Vues et Blade Templates Blade Layouts et Sections Sous-vues Composants et Slots Contrôles de flux
MVC :CRUD
CRUD: Produit CRUD: Etudiant CRUD: Car CRUD,Recherche: Book
Validation
Exemple :Projets
ORM:Eloquent
Exemple :Transport
Api:Laravel +React
Middleware

Seeders & Factories
Exemples :EFM

Authenfication
Queue,job,task
TP:Schools Management
Authenfication:React
Layouts
Exercices





Laravel: Définir des Routes

Laravel: Définir des Routes

Les routes sont une partie essentielle de toute application web Laravel. Elles permettent de définir comment les demandes URL doivent être traitées par l'application. Ce guide détaillé vous expliquera comment définir et gérer les routes dans Laravel avec des exemples pratiques.

Introduction aux Routes

Dans Laravel, les routes sont définies dans les fichiers situés dans le répertoire routes. Les fichiers principaux sont :

  • web.php : Pour les routes web qui utilisent les middlewares web.
  • api.php : Pour les routes API qui utilisent les middlewares api.
  • console.php : Pour les commandes Artisan.
  • channels.php : Pour les canaux de diffusion d'événements.

Routes de Base

1. Route GET

// routes/web.php
use Illuminate\Support\Facades\Route;

Route::get('/bonjour', function () {
    return 'Bonjour, monde!';
});

Cette route répond à une requête GET sur /bonjour et retourne "Bonjour, monde!".

2. Route POST

// routes/web.php
use Illuminate\Support\Facades\Route;

Route::post('/soumettre', function () {
    return 'Formulaire soumis!';
});

Cette route répond à une requête POST sur /soumettre et retourne "Formulaire soumis!".

3. Route avec Paramètres

// routes/web.php
use Illuminate\Support\Facades\Route;

Route::get('/utilisateur/{id}', function ($id) {
    return "Utilisateur $id";
});

Cette route accepte un paramètre id et retourne "Utilisateur {id}".

4. Route avec Paramètres Optionnels

// routes/web.php
use Illuminate\Support\Facades\Route;

Route::get('/salut/{nom?}', function ($nom = 'Invité') {
    return "Salut, $nom";
});

Cette route accepte un paramètre optionnel nom et retourne "Salut, {nom}" ou "Salut, Invité" si aucun nom n'est fourni.

Routes vers les Contrôleurs

1. Route vers une Méthode de Contrôleur

// routes/web.php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\UtilisateurController;

Route::get('/utilisateur/{id}', [UtilisateurController::class, 'montrer']);

Cette route appelle la méthode montrer du UtilisateurController pour afficher un utilisateur spécifique.

2. Ressources de Contrôleur

// routes/web.php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\UtilisateurController;

Route::resource('utilisateurs', UtilisateurController::class);

Cette commande génère automatiquement toutes les routes CRUD pour le UtilisateurController.

Groupes de Routes

Les groupes de routes permettent de partager les attributs, comme le middleware ou les préfixes, entre plusieurs routes.

1. Groupes de Routes avec Middleware

// routes/web.php
use Illuminate\Support\Facades\Route;

Route::middleware(['auth'])->group(function () {
    Route::get('/profil', function () {
        // Utilisateur authentifié
    });

    Route::get('/parametres', function () {
        // Utilisateur authentifié
    });
});

Toutes les routes à l'intérieur de ce groupe appliqueront le middleware auth.

2. Groupes de Routes avec Préfixe

// routes/web.php
use Illuminate\Support\Facades\Route;

Route::prefix('admin')->group(function () {
    Route::get('/utilisateurs', function () {
        // Gestion des utilisateurs
    });

    Route::get('/articles', function () {
        // Gestion des articles
    });
});

Toutes les routes à l'intérieur de ce groupe auront le préfixe /admin.

Routes Nomées

Les routes nommées permettent de générer des URL ou de rediriger vers des routes spécifiques plus facilement.

1. Définir une Route Nommée

// routes/web.php
use Illuminate\Support\Facades\Route;

Route::get('/profil', function () {
    // ...
})->name('profil');

Cette route peut être référencée par son nom profil.

2. Générer une URL vers une Route Nommée

<a href="{{ route('profil') }}">Profil</a>

3. Rediriger vers une Route Nommée

return redirect()->route('profil');

Middleware

Les middleware sont des couches intermédiaires qui peuvent inspecter ou modifier les requêtes HTTP avant qu'elles ne soient gérées par le contrôleur.

1. Appliquer un Middleware à une Route

// routes/web.php
use Illuminate\Support\Facades\Route;

Route::get('/tableau-de-bord', function () {
    // ...
})->middleware('auth');

2. Appliquer un Middleware à un Groupe de Routes

// routes/web.php
use Illuminate\Support\Facades\Route;

Route::middleware(['auth', 'admin'])->group(function () {
    Route::get('/admin', function () {
        // Tableau de bord admin
    });

    Route::get('/admin/utilisateurs', function () {
        // Gestion des utilisateurs admin
    });
});

Routes API

Les routes API sont définies dans le fichier routes/api.php et utilisent le middleware api.

1. Définir une Route API

// routes/api.php
use Illuminate\Support\Facades\Route;

Route::get('/utilisateurs', function () {
    return App\Models\User::all();
});

Cette route API retourne tous les utilisateurs sous forme de JSON.

Conclusion

La définition des routes est une partie cruciale du développement d'une application Laravel. Elle permet de contrôler comment les demandes URL sont traitées par l'application. En suivant ce guide, vous devriez maintenant être capable de définir et gérer les routes de base, les routes vers les contrôleurs, les groupes de routes, les routes nommées, et les middleware.

Pour plus de détails, consultez la documentation officielle de Laravel.