feat(controller): Tambahkan Error Handling pada Pemuatan Kategori

Menambahkan mekanisme penanganan error yang tangguh pada metode `index` di `DaftarPustakaController` untuk memastikan halaman tetap berfungsi meskipun terjadi kegagalan pada query database.

- **Implementasi Try-Catch**: Membungkus query `CategoryDaftarPustaka::withCount('daftarPustaka')` di dalam blok `try-catch`.
- **Pencatatan Error**: Jika terjadi `Exception` (misalnya, tabel relasi belum ada atau terjadi error SQL), pesan error akan dicatat menggunakan `Log::warning()` untuk kemudahan debugging.
- **Mekanisme Fallback**: Apabila query `withCount` gagal, controller akan menjalankan query alternatif `CategoryDaftarPustaka::get()` yang mengambil data kategori tanpa jumlah relasi. Ini memastikan bahwa halaman daftar pustaka tetap dapat ditampilkan kepada pengguna.
- **Penambahan Dependensi**: Menambahkan `use Exception;` dan `use Illuminate\Support\Facades\Log;` untuk mendukung fungsionalitas ini.
This commit is contained in:
Daeng Deni Mardaeni
2025-12-18 17:46:13 +07:00
parent 6cf4432642
commit 8a6ab059f5

View File

@@ -7,6 +7,8 @@ use Illuminate\Http\Request;
use Modules\Lpj\Models\CategoryDaftarPustaka; use Modules\Lpj\Models\CategoryDaftarPustaka;
use Modules\Lpj\Services\DaftarPustakaService; use Modules\Lpj\Services\DaftarPustakaService;
use Modules\Lpj\Http\Requests\DaftarPustakaRequest; use Modules\Lpj\Http\Requests\DaftarPustakaRequest;
use Exception;
use Illuminate\Support\Facades\Log;
class DaftarPustakaController extends Controller class DaftarPustakaController extends Controller
{ {
@@ -22,7 +24,15 @@ class DaftarPustakaController extends Controller
*/ */
public function index(Request $request) public function index(Request $request)
{ {
$categories = CategoryDaftarPustaka::all(); // Get categories with count of daftar pustaka
try {
$categories = CategoryDaftarPustaka::withCount('daftarPustaka')->get();
} catch (\Exception $e) {
// Handle jika tabel belum ada atau error lainnya
Log::warning('Error loading categories with count: ' . $e->getMessage());
$categories = CategoryDaftarPustaka::get(); // Fallback tanpa count
}
$daftar_pustaka = $this->daftarPustaka->getAllDaftarPustaka($request); $daftar_pustaka = $this->daftarPustaka->getAllDaftarPustaka($request);
return view('lpj::daftar-pustaka.index', [ return view('lpj::daftar-pustaka.index', [