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





Cours sur la Création de Contrôleurs dans Laravel

Cours sur la Création de Contrôleurs dans Laravel

Introduction

Les contrôleurs dans Laravel permettent de gérer la logique de traitement des requêtes HTTP entrantes. Ils sont situés dans le répertoire app/Http/Controllers et fournissent une manière organisée de gérer les actions de l'application.

Création d'un Contrôleur

Pour créer un nouveau contrôleur, vous pouvez utiliser la commande artisan suivante :

php artisan make:controller MonControleur

Cela créera un nouveau fichier de contrôleur dans le répertoire app/Http/Controllers.

Structure d'un Contrôleur

Un contrôleur typique contient des méthodes pour manipuler les ressources. Voici un exemple de contrôleur de base :

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class MonControleur extends Controller
{
    public function index()
    {
        return view('index');
    }

    public function show($id)
    {
        return view('show', ['id' => $id]);
    }

    public function create()
    {
        return view('create');
    }

    public function store(Request $request)
    {
        // Logique pour stocker les données
    }

    public function edit($id)
    {
        return view('edit', ['id' => $id]);
    }

    public function update(Request $request, $id)
    {
        // Logique pour mettre à jour les données
    }

    public function destroy($id)
    {
        // Logique pour supprimer les données
    }
}

Utilisation des Contrôleurs dans les Routes

Vous pouvez définir des routes qui pointent vers des actions de contrôleur dans les fichiers de définition des routes (routes/web.php ou routes/api.php) :

Route::get('/index', [MonControleur::class, 'index']);
Route::get('/show/{id}', [MonControleur::class, 'show']);
Route::get('/create', [MonControleur::class, 'create']);
Route::post('/store', [MonControleur::class, 'store']);
Route::get('/edit/{id}', [MonControleur::class, 'edit']);
Route::put('/update/{id}', [MonControleur::class, 'update']);
Route::delete('/destroy/{id}', [MonControleur::class, 'destroy']);

Exemples de Scénarios

1. Gestion des Articles de Blog

Voici un exemple de contrôleur pour gérer un blog :

class BlogController extends Controller
{
    public function index()
    {
        $articles = Article::all();
        return view('blog.index', compact('articles'));
    }

    public function show($id)
    {
        $article = Article::find($id);
        return view('blog.show', compact('article'));
    }

    public function create()
    {
        return view('blog.create');
    }

    public function store(Request $request)
    {
        $data = $request->validate([
            'title' => 'required|string|max:255',
            'content' => 'required|string',
        ]);

        Article::create($data);
        return redirect('/blog');
    }

    public function edit($id)
    {
        $article = Article::find($id);
        return view('blog.edit', compact('article'));
    }

    public function update(Request $request, $id)
    {
        $data = $request->validate([
            'title' => 'required|string|max:255',
            'content' => 'required|string',
        ]);

        Article::where('id', $id)->update($data);
        return redirect('/blog');
    }

    public function destroy($id)
    {
        Article::destroy($id);
        return redirect('/blog');
    }
}

2. Gestion des Utilisateurs

Voici un exemple de contrôleur pour gérer des utilisateurs :

class UserController extends Controller
{
    public function index()
    {
        $users = User::all();
        return view('users.index', compact('users'));
    }

    public function show($id)
    {
        $user = User::find($id);
        return view('users.show', compact('user'));
    }

    public function create()
    {
        return view('users.create');
    }

    public function store(Request $request)
    {
        $data = $request->validate([
            'name' => 'required|string|max:255',
            'email' => 'required|email|unique:users,email',
            'password' => 'required|string|min:8',
        ]);

        $data['password'] = bcrypt($data['password']);
        User::create($data);
        return redirect('/users');
    }

    public function edit($id)
    {
        $user = User::find($id);
        return view('users.edit', compact('user'));
    }

    public function update(Request $request, $id)
    {
        $data = $request->validate([
            'name' => 'required|string|max:255',
            'email' => 'required|email|unique:users,email,' . $id,
        ]);

        if ($request->filled('password')) {
            $data['password'] = bcrypt($request->password);
        }

        User::where('id', $id)->update($data);
        return redirect('/users');
    }

    public function destroy($id)
    {
        User::destroy($id);
        return redirect('/users');
    }
}

Conclusion

Les contrôleurs dans Laravel permettent de structurer proprement la logique de traitement des requêtes de votre application. En utilisant les contrôleurs, vous pouvez facilement gérer et organiser les différentes actions nécessaires à la manipulation des ressources de votre application.