TP Laravel: Système de gestion d'un établissement scolaire avec Laravel 8

 

  1. Création du projet
  2. Création du modèle
  3. Création du contrôleur
  4. Définition des routes et des views
  5. Configuration du Bootstrap avec laravel 8
  6. Création et affichage des données

 

 

Nous souhaitons maintenant créer un système de gestion des étudiants sous forme d'une CRUD application avec Laravel 8.

1 Création du projet & configuration de la base de données

1.1 pour commencer créer un nouveau projet Laravel 8:

1.2 Configurer ensuite la base de donnée mysql au niveau du fichier .env





1.3 Créer ensuite la base de donnée manageSchool au niveau de phpMyAdmin.

1.4 Effectuer ensuite la migration

La migration s'effectue à l'aide de la commande:

A ce moment là, Laravel vous crée automatiquement 4 tables mysql:

2 Création du modèle Student

Afin de pouvoir gérer les étudiant via un système de CRUD, nous devons créer un modèle Students:

A ce niveau là, Laravel vous crée automatiquement les deux fichiers:

  1. app/Models/Students.php
  2. database/migrations/create_students_table.php

Ajouter ensuite les attributs nécessaires à la gestion des étudiants au modèle Students:
database/migrations/create_students_table.php

3 Création du contrôleur

Afin que notre application soit un système de CRUD valide, il faut qu'elle soit dotée d'un contrôleur. Laravel 8 crée le contrôleur automatiquement à l'aide de la commande make:controller et si on veut créer les méthodes au sein du contrôleur on ajoute à la fin de la commande: --resource:

Cela crée automatiquement le fichier app/Http/Conrollers/StudentsController.php qui contient une classe nommée StudentsController.
La commande –resources qui a été ajoutée à la fin de la commande, avait pour rôle la création de 7 méthodes au sein de la classe StudentsController:

  1. index(): utilisée pour afficher la liste des étudiants.
  2. create(): affichera le formulaire ou la vue pour créer un étudiant.
  3. store(): utilisée pour insérer un étudiant dans la base de données. (Remarque: la méthode create submit les données du formulaire à la méthode store()).
  4. show(): affichera un étudiant spécifié.
  5. edit(): affichera le formulaire pour éditer un étudiant. Le formulaire sera rempli avec les données de l'étudiant existant).
  6. update(): utilisée pour mettre à jour un étudiant dans la base de données. Remarque: la méthode edit() submit les données du formulaire à la méthode update()).
  7. destroy(): utilisée pour supprimer un étudiant spécifié.

Code du fichier app/Http/Conrollers/StudentsController.php:

4 Définition des routes et des views

Les routes pour laravel8 sont gérées au niveau du fichier route/web.php. Afin de pouvoir ajouter correctement des routes qui pointent vers des views, on doit préalablement créer le template de base et les views:

4.1 Création du template de base resources/view/layout.blade.php

1. créer ou télécharger un template bootstrap et renommer le layout.blade.php
2. mettez le fichier layout.blade.php au sein du dossier resources/view pour obtenir à la fin, le fichier resources/view/layout.blade.php (ce fichier va être utilisé comme template de base pour notre application)
3. placer ensuite les fichiers du bootstrap bootstrap.min.css dans un dossier public/css/ et bootstrap.bundle.min.js dans le dossier public/js/ (les dossiers public/css/ et public/js/ doivent être crées lorsqu'ils n'existent pas!)
4. lier ensuite les feuilles .css .js du bootstrap en ajoutant le code suivant:

5. ajouter les tags nécessaire pour faire un héritage au fichier resources/view/layout.blade.php

6. créer ensuite le fichier: index.blade.php au sein du dossier resources/view/ et y ajouter les balises d'héritage:

7. Faite la même chose pour les fichiers , create.blade.php , edit..blade.php, update.blade.php et delete.blade.php (vous devez créer ces fichiers).

4.2 Création des routes

Pour créer une route, rien de plus simple, il suffit d'utiliser l'objet Root et d'indiquer le suffixe souhaité pour l'url de l'application et le controller de l'application au niveau du fichier 'Routes/web.php':

5 - Configuration du Bootstrap dans laravel 8

Afin de rendre le bootstrap opérationnel au sein de laravel 8, nous devons configurer ce dernier et l'installer:
Installation du package laravel/ui via cmd

Installation de bootstrap via cmd

Et maintenant afin de compiler la nouvelle structure, vous devez exécuter les deux commandes:

Remarque

ces deux commandes 'npm install' et 'npm run dev', exige que Node.JS soit installé dans votre machine! Si ce n'est pas le cas veuillez le télécharger et l'installer via l'adresse: https://nodejs.org/fr/download/

Remarque

Afin d'éviter les vulnérabilité d'attaque sous forme d'un envoie de données en masse, on doit ajouter le tableau $fillable au modèle:
app/Models/Students.php

6 Création et affichage des données

6.1 Création de l'objet tableau des données au niveau du contrôleur

Nous utilisons la méthode index() du contrôleur app/Http/Controllers/StudentsController.php pour pointer et afficher les données sur le fichier du template resources/view/index.blade.php

6.2 - Création et insertion des données au niveau du contrôleur




6.2.1 - la méthode create()

La méthode create du contrôleur pointe directement vers le formulaire d'insertion des données au niveau du template qui sera rprésenté par le fichier create.blade.php
Méthode create()

Fichier template: create.blade.php
Le fichier de template create.blade.php est utilié pour accéder au formulaire d'insertion de données, il est accéssible via l'adresse url: http://127.0.0.1:8000/create

6.2.2 La méthode d'insertion des données store()

Comme son nom l'indique, la méthode store() récupère les données envoyés depuis le formulaire d'insertion des données au niveau du view create.blade.php et les insère directement au sein de la table students de la base de donnée.
Méthode store()




6.2.3 template d'affichage des données index.blade.php




 

 

Younes Derfoufi
CRMEF OUJDA

Leave a Reply

Ads Blocker Image Powered by Code Help Pro

Ads Blocker Detected!!!

We have detected that you are using extensions to block ads. Please support us by disabling these ads blocker.

Powered By
Best Wordpress Adblock Detecting Plugin | CHP Adblock