From 8e7b672af8e807541526edca91abb8498a777a7c Mon Sep 17 00:00:00 2001 From: LailaWulandarii Date: Sat, 27 Dec 2025 18:59:09 +0700 Subject: [PATCH] add logic in additional controller and additional view for crud --- .../admin/AdditionalController.php | 82 +++++++++++++++++++ .../views/admin/paket-foto/index.blade.php | 56 ++++++------- .../modal-create-additional.blade.php | 22 +++-- .../modal-delete-additional.blade.php | 40 ++------- .../partials/modal-edit-additional.blade.php | 31 +++++-- 5 files changed, 152 insertions(+), 79 deletions(-) create mode 100644 app/Http/Controllers/admin/AdditionalController.php diff --git a/app/Http/Controllers/admin/AdditionalController.php b/app/Http/Controllers/admin/AdditionalController.php new file mode 100644 index 0000000..8a2a153 --- /dev/null +++ b/app/Http/Controllers/admin/AdditionalController.php @@ -0,0 +1,82 @@ +all(), [ + 'nama' => 'required|string|min:3|max:100', + 'harga' => 'required|numeric|min:0', + ], [ + 'required' => 'Kolom :attribute wajib diisi.', + 'numeric' => ':attribute harus berupa angka.', + 'string' => 'Input :attribute harus berupa teks valid.', + 'max' => ':attribute melebihi batas, maksimal :max karakter/KB.', + 'min' => ':attribute minimal harus :min karakter/nilai.', + 'numeric' => ':attribute harus berupa angka.', + ], [ + 'nama' => 'nama additional', + 'harga' => 'harga additional', + ]); + + if ($validator->fails()) { + return redirect()->back() + ->withErrors($validator) + ->withInput() + ->with('error_modal', 'createAdd'); // Membuka modal tambah additional + } + + Additional::create($request->only(['nama', 'harga'])); + + return redirect()->back()->with('success', 'Additional berhasil ditambahkan!'); + } + + // Update: Simpan Perubahan + public function update(Request $request, string $id) + { + $additional = Additional::findOrFail($id); + + $validator = Validator::make($request->all(), [ + 'nama' => 'required|string|min:3|max:100', + 'harga' => 'required|numeric|min:0', + ], [ + 'required' => 'Kolom :attribute wajib diisi.', + 'numeric' => ':attribute harus berupa angka.', + 'string' => 'Input :attribute harus berupa teks valid.', + 'max' => ':attribute melebihi batas, maksimal :max karakter/KB.', + 'min' => ':attribute minimal harus :min karakter/nilai.', + 'numeric' => ':attribute harus berupa angka.', + ], [ + 'nama' => 'nama additional', + 'harga' => 'harga additional', + ]); + + if ($validator->fails()) { + return redirect()->back() + ->withErrors($validator) + ->withInput() + ->with('error_id_add', $id); // Membuka modal edit additional + } + + $additional->update($request->only(['nama', 'harga'])); + + return redirect()->back()->with('success', 'Additional berhasil diperbarui!'); + } + + // Destroy: Hapus Data + public function destroy(string $id) + { + $additional = Additional::findOrFail($id); + $additional->delete(); + + return redirect()->back()->with('success', 'Additional berhasil dihapus!'); + } +} diff --git a/resources/views/admin/paket-foto/index.blade.php b/resources/views/admin/paket-foto/index.blade.php index 29602ed..7fa9658 100644 --- a/resources/views/admin/paket-foto/index.blade.php +++ b/resources/views/admin/paket-foto/index.blade.php @@ -117,28 +117,27 @@ - @forelse ($additional as $ad) + @forelse ($additional as $add) {{ $loop->iteration }} - {{ $ad->nama }} - Rp {{ number_format($ad->harga, 0, ',', '.') }} + {{ $add->nama }} + Rp {{ number_format($add->harga, 0, ',', '.') }} + data-bs-target="#editAdd{{ $add->id_additional }}"> + data-bs-target="#deleteAdd{{ $add->id_additional }}"> - {{-- @include('admin.produk-buket.partials.modal-show') - @include('admin.produk-buket.partials.modal-edit') - @include('admin.produk-buket.partials.modal-delete') --}} + @include('admin.paket-foto.partials.modal-edit-additional') + @include('admin.paket-foto.partials.modal-delete-additional') @empty @@ -158,12 +157,8 @@ @include('admin.paket-foto.partials.modal-create-foto') - @include('admin.paket-foto.partials.modal-show-foto') - @include('admin.paket-foto.partials.modal-edit-foto') - @include('admin.paket-foto.partials.modal-delete-foto') @include('admin.paket-foto.partials.modal-create-additional') - @include('admin.paket-foto.partials.modal-edit-additional') - @include('admin.paket-foto.partials.modal-delete-additional') + @push('scripts') diff --git a/resources/views/admin/paket-foto/partials/modal-edit-additional.blade.php b/resources/views/admin/paket-foto/partials/modal-edit-additional.blade.php index 3f4d4f0..132df77 100644 --- a/resources/views/admin/paket-foto/partials/modal-edit-additional.blade.php +++ b/resources/views/admin/paket-foto/partials/modal-edit-additional.blade.php @@ -1,29 +1,42 @@ -