From 937f24a5ffc145e5041934e5b949ee37d5a001d9 Mon Sep 17 00:00:00 2001 From: dhilanradya Date: Mon, 1 Sep 2025 17:02:57 +0700 Subject: [PATCH 1/3] [feet] edit produk --- app/Http/Controllers/ProdukController.php | 16 +- resources/js/pages/EditProduk.vue | 266 ++++++++++++++++++++++ resources/js/pages/Produk.vue | 6 +- resources/js/router/index.js | 7 + 4 files changed, 285 insertions(+), 10 deletions(-) create mode 100644 resources/js/pages/EditProduk.vue diff --git a/app/Http/Controllers/ProdukController.php b/app/Http/Controllers/ProdukController.php index d91f2a8..7100b10 100644 --- a/app/Http/Controllers/ProdukController.php +++ b/app/Http/Controllers/ProdukController.php @@ -34,7 +34,7 @@ class ProdukController extends Controller 'harga_per_gram' => 'required|numeric', 'harga_jual' => 'required|numeric', 'id_user' => 'nullable|exists:users,id', - ], + ], [ 'nama.required' => 'Nama produk harus diisi.', 'id_kategori' => 'Kategori tidak valid.', @@ -59,13 +59,13 @@ class ProdukController extends Controller // Pindahkan foto sementara ke foto permanen jika ada if (isset($validated['id_user'])) { $fotoSementara = FotoSementara::where('id_user', $validated['id_user'])->get(); - + foreach ($fotoSementara as $fs) { Foto::create([ 'id_produk' => $produk->id, 'url' => $fs->url ]); - + // Hapus foto sementara setelah dipindah $fs->delete(); } @@ -110,7 +110,7 @@ class ProdukController extends Controller 'harga_jual' => 'required|numeric', 'id_user' => 'nullable|exists:users,id', // untuk mengambil foto sementara baru 'hapus_foto_lama' => 'nullable|boolean', // flag untuk menghapus foto lama - ], + ], [ 'nama.required' => 'Nama produk harus diisi.', 'id_kategori' => 'Kategori tidak valid.', @@ -123,11 +123,11 @@ class ProdukController extends Controller DB::beginTransaction(); try { $produk = Produk::findOrFail($id); - + // Update data produk $produk->update([ 'nama' => $validated['nama'], - 'kategori' => $validated['kategori'], + 'id_kategori' => $validated['id_kategori'], 'berat' => $validated['berat'], 'kadar' => $validated['kadar'], 'harga_per_gram' => $validated['harga_per_gram'], @@ -149,13 +149,13 @@ class ProdukController extends Controller // Tambahkan foto baru dari foto sementara jika ada if (isset($validated['id_user'])) { $fotoSementara = FotoSementara::where('id_user', $validated['id_user'])->get(); - + foreach ($fotoSementara as $fs) { Foto::create([ 'id_produk' => $produk->id, 'url' => $fs->url ]); - + // Hapus foto sementara setelah dipindah $fs->delete(); } diff --git a/resources/js/pages/EditProduk.vue b/resources/js/pages/EditProduk.vue new file mode 100644 index 0000000..9a1be17 --- /dev/null +++ b/resources/js/pages/EditProduk.vue @@ -0,0 +1,266 @@ + + + diff --git a/resources/js/pages/Produk.vue b/resources/js/pages/Produk.vue index a04daa8..0a9400e 100644 --- a/resources/js/pages/Produk.vue +++ b/resources/js/pages/Produk.vue @@ -123,10 +123,12 @@
+ +