Vous êtes sur la page 1sur 15

TP N° 1

Les bases de laravel


CRUD
Nous souhaitons créer un système de gestion des Profiles sous forme d'une CRUD (Create
Read Update Delette) application avec Laravel.
Etape 1 : Création du projet & configuration de la base de données
1- pour commencer créer un nouveau projet Laravel

2- Configurer ensuite la base de données MySQL au niveau du fichier .env

3- Créer ensuite la base de données laravelcrud au niveau de phpMyAdmin.

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:

Etape 2 : -Création du modèle Profile avec la migration


On va créer avec Artisan le modèle Profile en même temps que la migration :

p. 1
A ce niveau-là, Laravel vous crée automatiquement les deux fichiers:
1. app/Models/Profile.php
2. database/migrations/ 2024_02_17_164958_create_profiles_table.php

Ajouter ensuite les attributs nécessaires à la gestion des Profiles au modèle Profile:
database/migrations/ 2024_02_17_164958_create_profiles_table.php

On a les champs :

 id : entier auto-incrémenté qui sera la clé primaire de la table,


 name : string pour le nom Profile,
 email : string pour email de Profile,
 password : string pour le Profile,
 bio : texte pour la bio. Du Profile,
 created_at et updated_at créés par la méthode timestamps,

Ensuite on lance la migration :

On a la création des tables de base de Laravel qu’on a déjà vues et qui ne nous intéressent pas
pour cet article. Mais on voit aussi la création de la table Profiles :

p. 2
Le modèle
Le modèle Profile qu’on a créé est vide au départ (il n’y a que le trait pour le factory). On va
se contenter de prévoir l’assignement de masse avec la propriété $fillable :

La population
Pour nos essais on va remplir un peu la table avec quelques Profile. On va créer un factory :

On a ce code de base :

On va compléter ainsi :

p. 3
Puis On va créer un seeders :

Il ne reste plus qu’à lancer la population :

Si tout va bien on se retrouve avec 50 Profiles dans la table

3-Création du contrôleur
On va maintenant créer un contrôleur de ressource avec Artisan :

p. 4
Cela crée automatiquement le fichier app/Http/Conrollers/ProfileController.php qui
contient une classe nommée ProfileController.

On va créer 7 méthodes qui couvrent la gestion complète des Profiles:

 index : pour afficher la liste des Profiles,

 create : pour envoyer le formulaire pour la création d’un nouveau Profile,

 store : pour créer un nouveau Profile,

 show : pour afficher les données d’un Profile,

 edit : pour envoyer le formulaire pour la modification d’un Profile,

 update : pour modifier les données d’un Profile,

 destroy : pour supprimer un Profile.

4-Définition des routes et des views

p. 5
Les routes pour laravel 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 des routes
Pour créer une route, rien de plus simple, il suffit d'utiliser l'objet Roote 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':

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

On va intégrer le CDN boostrap dans layout.

Créer ensuite le fichier: index.blade.php au sein du dossier resources/view/ et y ajouter les


balises d'héritage:

p. 6
La liste des Profiles
Le contrôleur
Dans le contrôleur c’est la méthode index qui est concernée. On va donc la coder :

On va chercher tous les Profiles avec la méthode all du modèle, on appelle la vue index en lui
transmettant les Profiles.

La vue index

Avec ce code :

p. 7
La pagination
Ici on n’a que 100 Profiles mais imaginez qu’on en ait des centaines ou des milliers ! Dans ce
cas une pagination serait la bienvenue. Laravel est bien équipé pour ça. Au niveau du contrôleur
le changement est facile :

On a remplacé la méthode all par paginate en indiquant en paramètre le nombre


d’enregistrement par page. Ensuite dans la vue (index.blade.php) il suffit de prévoir ce code :

p. 8
L’affichage d’un Profile
On va voir maintenant l’affichage les données d’un Profile. On y accède à partir du
bouton show.

La route
La route correspondante est :

Le contrôleur
Dans le contrôleur c’est la méthode show qui est concernée. On va donc la coder.

p. 9
Il me faut toutefois préciser déjà un point important. Dans la version du contrôleur générée par
défaut on voit que le Profile au niveau des arguments des fonctions est référencé par son
identifiant, par exemple :

La variable id contient la valeur passée dans l’url. Par exemple …/Profiles/8 indique qu’on
veut voir les informations du Profile d’identifiant 8. Il suffit donc ensuite d’aller chercher dans
la base le Profile correspondant.

On va utiliser une autre stratégie :

La vue show
On crée cette vue :

Supprimer un Profile
La route
La suppression d’un Profile correspond à cette route :

p. 10
Le contrôleur
Dans le contrôleur c’est la méthode destroy qui est concernée. On va donc la coder :

Après la suppression il faut afficher quelque chose pour dire que l’opération s’est réalisée
correctement. On voit qu’il y a une redirection avec la méthode back qui renvoie la même page.
D’autre part la méthode with permet de flasher une information dans la session. Cette
information ne sera valide que pour la requête suivante. Dans notre vue index.blade.php on va
prévoir quelque chose pour afficher cette information :

La directif @if permet de déterminer si une information est présente en session, et si c’est le
cas de l’afficher :

p. 11
Ajouter un Profile
Les routes
On va utiliser deux routes create et store. La première pour afficher le formulaire et la
deuxième pour traiter les données et les insérer dans la base de données.

Le contrôleur
Dans le contrôleur ce sont les méthodes create et store qui sont concernées. On va donc les
coder :

La vue create
On crée la vue createProfile :

p. 12
On obtient

On peut tester :

p. 13
Modifier un Profile
Pour la modification d’un Profile on va avoir deux routes :
Pour afficher le formulaire de modification
Pour soumettre le formulaire

Le contrôleur
Dans le contrôleur ce sont les méthodes edit et update qui sont concernées. On va donc les
coder :

La vue edit
Là aussi on va avoir pratiquement le même code que la vue create. La différence c’est qu’il
faut renseigner les contrôles du formulaire au départ. On crée la vue edit :

p. 14
p. 15

Vous aimerez peut-être aussi