Fffff
4738062735662588
Pour créer un site projet complet avec Laravel, voici
toutes les étapes détaillées à suivre :
dfdasfdsa
4. Définir la structure de la table dans la migration :
Ouvrez la migration générée et définissez les colonnes de la
table etudiants :
public function up()
{
Schema::create('etudiants', function (Blueprint $table) {
$table->id();
$table->string('nom');
$table->date('prenom');
$table->unsignedInteger('superficie')->default(20); // Entier positif, défaut = 20
$table->string('email')->unique();
$table->enum('étage',['RDC','1','2','3']); // Seules ces valeurs sont autorisées
$table->decimal('prix')->nullable();
$table->boolean('classe');
$table->integer ('note');
$table->timestamps();
});
}
La maknche primary key dylna hewa id kandiro :
$table->strung(‘matricule’)->primary() ;
’
5. Exécuter la migration :
Exécutez la migration pour créer la table dans la base de données :
()قم بتشغيل الهجرة إلنشاء الجدول في قاعدة البيانات
php artisan migrate
//La commande php artisan migrate:fresh est utilisée dans Laravel
pour supprimer toutes les tables de la base de données et exécuter à
nouveau toutes les migrations.
//tms7 dkchi 9dim wt3wdo be jdide
6. Créer un contrôleur
4738062735662588
Pour créer un site projet complet avec Laravel, voici
toutes les étapes détaillées à suivre :
1. Installer Laravel :
Si vous n'avez pas encore installé Laravel, commencez par créer un
nouveau projet Laravel :
composer create-project laravel/laravel nom-du-projet
Remplacez nom-du-projet par le nom de votre projet.
2. Configurer la base de données :
Ouvrez le fichier .env et configurez les informations de connexion à votre
base de données :
DB_CONNECTION=mysql
DB_HOST=[Link]
DB_PORT=3306
DB_DATABASE=nom_de_la_base
DB_USERNAME=root
DB_PASSWORD=votre_mot_de_passe
3. Créer un modèle et une migration :
Générez un modèle et une migration pour gérer les étudiants :
php artisan make:model Etudiant -m
Cela crée :
Un modèle Etudiant dans app/Models/[Link]
Une migration
dans database/migrations/xxxx_xx_xx_create_etudiants_table.php
// Créer un modèle et une migration et une Controller :
php artisan make:model Etudiant -mcrR
m : migration ; c : Controller ; r : ressués de controller ;R :
Request
4. Définir la structure de la table dans la migration :
Ouvrez la migration générée et définissez les colonnes de la
table etudiants :
public function up()
{
Schema::create('etudiants', function (Blueprint $table) {
$table->id();
$table->string('nom');
$table->date('prenom');
$table->unsignedInteger('superficie')->default(20); // Entier positif, défaut = 20
$table->string('email')->unique();
$table->enum('étage',['RDC','1','2','3']); // Seules ces valeurs sont autorisées
$table->decimal('prix')->nullable();
$table->boolean('classe');
$table->integer ('note');
$table->timestamps();
});
}
La maknche primary key dylna hewa id kandiro :
$table->strung(‘matricule’)->primary() ;
’
5. Exécuter la migration :
Exécutez la migration pour créer la table dans la base de données :
()قم بتشغيل الهجرة إلنشاء الجدول في قاعدة البيانات
php artisan migrate
//La commande php artisan migrate:fresh est utilisée dans Laravel
pour supprimer toutes les tables de la base de données et exécuter à
nouveau toutes les migrations.
//tms7 dkchi 9dim wt3wdo be jdide
6. Créer un contrôleur
Générez un contrôleur pour gérer les opérations CRUD (Create, Read,
Update, Delete) :
php artisan make:controller EtudiantController
Cela_crée_un_contrôleur EtudiantController dans app/Http/Controllers/
[Link] avec les méthodes de base.
7. Définir les routes
Ouvrez_le fichier routes/[Link] et_ajoutez_les_routes pour le
contrôleur EtudiantController:
use App\Http\Controllers\EtudiantController;
Route::resource('etudiants', EtudiantController::class);
---// 2éme méthode pour définir les routes :
8. Implémenter les méthodes du contrôleur
Ouvrez [Link] et implémentez les méthodes pour
gérer les étudiants :
Explications des commentaires :
1. index() :
o Cette méthode récupère tous les étudiants de la base de
données et les passe à la vue [Link] pour afficher la
liste.
o تعمل هذه الطريقة على استرجاع جميع الطالب من قاعدة البيانات وتمريرهم
إلى عرض[Link] لعرض القائمة.
2. create() :
o Cette méthode affiche le formulaire pour ajouter un nouvel
étudiant en retournant la vue [Link].
o تعرض هذه الطريقة النموذج إلضافة طالب جديد عن طريق إرجاع عرض
[Link].
3. store(Request $request) :
o Cette méthode enregistre un nouvel étudiant dans la base de
données en utilisant les données du formulaire. Après l'ajout,
elle redirige vers la liste des étudiants.
o تقوم هذه الطريقة بتسجيل طالب جديد في قاعدة البيانات باستخدام البيانات
يتم إعادة التوجيه إلى قائمة الطالب، بعد اإلضافة.الموجودة في النموذج.
4. // 4- Affiche un étudiant
5. edit($id) :
o Cette méthode récupère un étudiant spécifique par son ID et
affiche le formulaire de modification en utilisant la
vue [Link].
o تعمل هذه الطريقة على استرجاع طالب معين عن طريق معرفه وعرض نموذج
التحرير باستخدام عرض[Link].
6. update(Request $request, $id) :
o Cette méthode met à jour les informations d'un étudiant
existant en utilisant les données du formulaire. Après la mise à
jour, elle redirige vers la liste des étudiants.
o تقوم هذه الطريقة بتحديث معلومات الطالب الحالي باستخدام البيانات
بعد التحديث سيتم إعادة التوجيه إلى قائمة الطالب.الموجودة في النموذج.
7. destroy($id) :
o Cette méthode supprime un étudiant de la base de données
en fonction de son ID. Après la suppression, elle redirige vers
la liste des étudiants.
o بعد.تقوم هذه الطريقة بإزالة الطالب من قاعدة البيانات بناًء على معرفه
يتم إعادة التوجيه إلى قائمة الطالب،الحذف.
[Link] app/Models/[Link], ajoute la propriété $fillable
et définis explicitement les champs à autoriser :
protected $primaryKey = 'CourseID'; //Clé primaire personnalisée
public $incrementing = false; // Désactive l'auto-
incrémentation
10. Créer les vues :
Créez un dossier etudiants dans resources/views et ajoutez les fichiers
suivants :
a. [Link] (Liste des étudiants) :
<!DOCTYPE html>
<html>
<head>
<title>Liste des Étudiants</title>
</head>
<body>
<h1>Liste des Étudiants</h1>
<a href="{{ route('[Link]') }}">Ajouter un
étudiant</a>
<table class="table">
<thead class="table-light">
<tr>
<th scope="col">#</th>
<th scope="col">Nom</th>
<th scope="col">Prénom</th>
<th scope="col">Email</th>
<th scope="col">Class</th>
<th scope="col">Actions</th>
</tr>
</thead>
<tbody>
@foreach($etudiants as $etudiant)
<tr>
<td scope="row">{{ $etudiant->id }}</td>
<td >{{ $etudiant->nom }}</td>
<td>{{ $etudiant->prenom }}</td>
<td>{{ $etudiant->email }}</td>
<td>{{ $etudiant->class }}</td>
<td>
<a href="{{ route('[Link]', $etudiant-
>id) }}">Modifier</a>
<form action="{{ route('[Link]',
$etudiant->id) }}" method="POST">
@csrf
@method('DELETE')
<button type="submit" onclick="return
confirm('Êtes-vous sûr ?')" > Supprimer</button>
</form>
</td>
</tr>
@endforeach
</tbody>
</table>
</body>
</html>
b. [Link] (Formulaire d'ajout)
c. [Link] (Formulaire de modification)
10. Tester l'application
Démarrez le serveur de développement Laravel :
php artisan serve .
I- Créer une migration pour ajouter une colonne :
a- Exécute cette commande dans ton terminal :
php artisan make:migration add_column_name_to_table_name --
table=table_name
b- Modifier la migration pour ajouter la colonne :
II- Créer une migration pour ajouter une clé
étrangère :
a- Exécute cette commande dans ton terminal :
php artisan make:migration add_user_id_to_products --
table=products
b- Modifier la migration pour ajouter la clé étrangère :
or ajouter on migration : $table->foreignId('filier_id')-
>constrained();
c- Ajouter on app/Models/[Link] :
$this->belongsTo(): 5dmha fche ukone jdwl dylk (etudiant)
fih cle estrange dyle jdwl a5ore (filiere_id)
$this->hasMany() : Filier ymkne ykone 3nd kter men
etudiant ( one-to-many )
$this->belongsToMany : many-to-many (n,n)
$this->hasOne : one-to-one (1,1)
d- Ajouter on app/Models/[Link] :
e- Afficher la liste des filières on etudiants\[Link] :
f- Afficher la liste des filières on etudiants\[Link] :
III- Factory :
1- Créer une Factory :
pour creer une factory executer la commande suivante:
php artisan make:factory EtudiantFactory --model=Etudiant
2- Définir les Données de la Factory : Dans le fichier
[Link], tu verras une méthode definition().
Tu peux la modifier comme suit :
liste des fonctions les plus utilisées avec fake() dans les factories :
email() ; phoneNumber() ; password() ; date() ; address();
IV- Seeders :
1- creer une sedeeder :
pour creer une sedeeder executer la commande suivante:
php artisan make:seeder EtudiantSeeder
2-Modifier le Seeder :
Ouvre database/seeders/[Link] et modifie la méthode run() :
-- taper la commande suivante pour executer la seeder:
php artisan db :seed - -class=EtudiantSeder
V- Validation en Laravel :
1. Validation dans un Contrôleur :
Dans un contrôleur, tu peux valider les données avec la méthode validate()
comme ceci :
‘date’ => ‘date_format :d/m/Y H:i :s’ ;
2. Validation avec une Form Request (Recommandée) :
a. Créer une Form Request
Utilise la commande :
php artisan make:request EtudiantRequest
b. Modifier la Form Request :
c. Utiliser la Form Request dans le Contrôleur :
Résumé de function back() :
Fonction Description
back() Retourne à la page précédente
back()->with('key', Retourne avec un message
'valeur') flash
back()- Retourne avec des erreurs de
>withErrors($errors) validation
z
3. Messages Personnalisés :
1ére methode :
2éme methode :
Partie2 : Afficher les messages d'erreur en Laravel
1. Afficher Tous les Messages d'Erreur :
2. Afficher un Message d'Erreur Spécifique pour un Champ:
3. Afficher un Message success :
VI- Les Layouts en Laravel (Blade Template) :
1. Créer un Layout Principal :
Dans resources/views/layouts/, crée un fichier
[Link] :
2. Créer une Vue qui Hérite du Layout :
Exemple : Fichier resources/views/[Link]:
Résumé des Principales Directives Blade :
Directive Description
@extends('layout') Indique que la vue hérite d'un
layout
@section('name') ... @endsection Définit une section de contenu
@yield('name') Emplacement où s'affichera une
section enfant
@include('view') Insère une autre vue (ex: menu,
footer)
VII. Components :
1. pour créere une component ecrire la commande suivante :
php artisan make :component alert
2. on votre component resources/views/components/alert:
3. affichage :