diff --git a/.env.example b/.env.example
deleted file mode 100644
index 33237d6..0000000
--- a/.env.example
+++ /dev/null
@@ -1,59 +0,0 @@
-APP_NAME=Laravel
-APP_ENV=local
-APP_KEY=
-APP_DEBUG=true
-APP_URL=http://localhost
-
-LOG_CHANNEL=stack
-LOG_DEPRECATIONS_CHANNEL=null
-LOG_LEVEL=debug
-
-DB_CONNECTION=mysql
-DB_HOST=127.0.0.1
-DB_PORT=3306
-DB_DATABASE=ecommerce
-DB_USERNAME=root
-DB_PASSWORD=
-
-BROADCAST_DRIVER=log
-CACHE_DRIVER=file
-FILESYSTEM_DISK=local
-QUEUE_CONNECTION=sync
-SESSION_DRIVER=file
-SESSION_LIFETIME=120
-
-MEMCACHED_HOST=127.0.0.1
-
-REDIS_HOST=127.0.0.1
-REDIS_PASSWORD=null
-REDIS_PORT=6379
-
-MAIL_MAILER=smtp
-MAIL_HOST=mailpit
-MAIL_PORT=1025
-MAIL_USERNAME=null
-MAIL_PASSWORD=null
-MAIL_ENCRYPTION=null
-MAIL_FROM_ADDRESS="hello@example.com"
-MAIL_FROM_NAME="${APP_NAME}"
-
-AWS_ACCESS_KEY_ID=
-AWS_SECRET_ACCESS_KEY=
-AWS_DEFAULT_REGION=us-east-1
-AWS_BUCKET=
-AWS_USE_PATH_STYLE_ENDPOINT=false
-
-PUSHER_APP_ID=
-PUSHER_APP_KEY=
-PUSHER_APP_SECRET=
-PUSHER_HOST=
-PUSHER_PORT=443
-PUSHER_SCHEME=https
-PUSHER_APP_CLUSTER=mt1
-
-VITE_APP_NAME="${APP_NAME}"
-VITE_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
-VITE_PUSHER_HOST="${PUSHER_HOST}"
-VITE_PUSHER_PORT="${PUSHER_PORT}"
-VITE_PUSHER_SCHEME="${PUSHER_SCHEME}"
-VITE_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"
diff --git a/app/Http/Controllers/CategorieController.php b/app/Http/Controllers/CategorieController.php
index 1550db0..0412ed0 100644
--- a/app/Http/Controllers/CategorieController.php
+++ b/app/Http/Controllers/CategorieController.php
@@ -1,7 +1,7 @@
get();
+
+ // Calculer le nombre total de produits
+ $totalProduits = Produit::count();
+
+ // Retourner la vue avec les catégories et le nombre total de produits
+ return view('admin.categories.list_categorie', compact('categories', 'totalProduits'));
}
/**
* Show the form for creating a new resource.
*/
- public function create()
- {
- //
+ public function create(){
+ return view('admin.categories.ajout_categorie');
}
/**
* Store a newly created resource in storage.
*/
- public function store(Request $request)
- {
- //
+ public function store(Request $request){
+ // Valider les données
+ $validatedData = $request->validate([
+ 'libelle' => 'required|string|max:255',
+ 'description' => 'required|string|max:500',
+ ]);
+
+ // Vérifier si le libellé existe déjà (insensible à la casse)
+ $existingCategorie = categorie::whereRaw('LOWER(libelle) = ?', [strtolower($request->libelle)])->first();
+
+ if ($existingCategorie) {
+ // Si une catégorie existe avec ce libellé, renvoyer un message d'erreur
+ return redirect()->back()->with('error', 'La catégorie existe déjà.');
+ }
+
+ // Créer la nouvelle catégorie
+ categorie::create([
+ 'libelle' => $request->libelle,
+ 'description' => $request->description,
+ ]);
+
+ // Rediriger avec un message de succès
+ return redirect()->route('categories.index')->with('success', 'Catégorie créée !');
}
+
/**
* Display the specified resource.
@@ -50,16 +76,52 @@ public function edit(Categorie $categorie)
/**
* Update the specified resource in storage.
*/
- public function update(Request $request, Categorie $categorie)
+ public function update(Request $request, $id)
{
- //
+ // Validation des données envoyées
+ $request->validate([
+ 'libelle' => 'required|string|max:255',
+ 'description' => 'required|string|max:1000',
+ ]);
+
+ // Vérifier si le nouveau libellé existe déjà pour une autre catégorie
+ $existingCategorie = Categorie::whereRaw('LOWER(libelle) = ?', [strtolower($request->libelle)])
+ ->where('id', '!=', $id) // Exclure la catégorie actuelle
+ ->first();
+
+ if ($existingCategorie) {
+ // Si une catégorie existe déjà avec ce libellé, renvoyer un message d'erreur
+ return redirect()->back()->with('error', 'Une autre catégorie avec ce libellé existe déjà.');
+ }
+
+ // Trouver la catégorie par son ID
+ $categorie = Categorie::findOrFail($id);
+
+ // Mettre à jour les informations de la catégorie
+ $categorie->libelle = $request->input('libelle');
+ $categorie->description = $request->input('description');
+
+ // Enregistrer les modifications dans la base de données
+ $categorie->save();
+
+ // Retourner à la page précédente avec un message de succès
+ return redirect()->route('categories.index')->with('success', 'La catégorie a été mise à jour avec succès.');
}
-
+
/**
* Remove the specified resource from storage.
*/
- public function destroy(Categorie $categorie)
+ public function destroy($id)
{
- //
+ // Trouver la catégorie par son ID
+ $categorie = Categorie::findOrFail($id);
+
+ // Supprimer la catégorie
+ $categorie->delete();
+
+ // Rediriger avec un message de succès
+ return redirect()->route('categories.index')->with('success', 'Catégorie supprimé ');
}
}
+
+
diff --git a/app/Http/Controllers/UserController.php b/app/Http/Controllers/UserController.php
new file mode 100644
index 0000000..d2bace9
--- /dev/null
+++ b/app/Http/Controllers/UserController.php
@@ -0,0 +1,22 @@
+delete();
+
+ return redirect()->back()->with('success', 'Utilisateur supprimé avec succès.');
+ }
+}
diff --git a/app/Models/Categorie.php b/app/Models/Categorie.php
index a4cf9b7..46326b7 100644
--- a/app/Models/Categorie.php
+++ b/app/Models/Categorie.php
@@ -13,8 +13,9 @@ class Categorie extends Model
'description'
];
- public function produit()
+ public function produits()
{
- return $this->hasMany(Produit::class);
- }
+ return $this->hasMany(Produit::class, 'id_categorie'); // Assurez-vous d'utiliser le bon modèle ici
+
+}
}
diff --git a/resources/views/admin/categories/ajout_categorie.blade.php b/resources/views/admin/categories/ajout_categorie.blade.php
new file mode 100644
index 0000000..5183d2c
--- /dev/null
+++ b/resources/views/admin/categories/ajout_categorie.blade.php
@@ -0,0 +1,6 @@
+@extends('admin.dashboard')
+
+@section('content')
+