From 57fd820dfa621ca8f334110fd97e1ec0800e270d Mon Sep 17 00:00:00 2001 From: wardhatul1765 Date: Thu, 30 Apr 2026 07:00:13 +0700 Subject: [PATCH] Fix relasi database peminjaman --- .../Controllers/AdminPeminjamanController.php | 11 +++++ app/Http/Controllers/PeminjamanController.php | 2 +- .../2026_02_14_235500_fix_peminjaman_fk.php | 43 +++++++++---------- 3 files changed, 32 insertions(+), 24 deletions(-) diff --git a/app/Http/Controllers/AdminPeminjamanController.php b/app/Http/Controllers/AdminPeminjamanController.php index 4c87a18..722d92f 100644 --- a/app/Http/Controllers/AdminPeminjamanController.php +++ b/app/Http/Controllers/AdminPeminjamanController.php @@ -120,7 +120,18 @@ public function store(Request $request) if ($response->successful() && ($response->json('status') == true)) { $waSuccess = true; + } else { + \Illuminate\Support\Facades\Log::warning("Fonnte Log: Gagal Terkirim", [ + 'target' => $targetNum, + 'http_status' => $response->status(), + 'body' => $response->body() + ]); } + } else { + \Illuminate\Support\Facades\Log::warning('Fonnte Log: Token / No HP kosong', [ + 'target' => $targetNum ?? 'kosong', + 'token_set' => !empty($fonnteToken), + ]); } } catch (\Exception $e) { \Illuminate\Support\Facades\Log::error("Error WA Pengiriman: " . $e->getMessage()); diff --git a/app/Http/Controllers/PeminjamanController.php b/app/Http/Controllers/PeminjamanController.php index 33d2e81..8eb5fa7 100644 --- a/app/Http/Controllers/PeminjamanController.php +++ b/app/Http/Controllers/PeminjamanController.php @@ -96,7 +96,7 @@ public function store(Request $request) // Dapatkan nomor handphone pendaftar & Fonnte Token $targetNum = $peminjaman->anggota->no_hp ?? ''; - $fonnteToken = env('vpzqxF2ZGgTGz9F5UbUS'); // Pastikan token fonnte dimasukkan di file .env Anda. + $fonnteToken = 'vpzqxF2ZGgTGz9F5UbUS'; // Token Fonnte // Standarisasi Format Nomor ke awalan 62 (Kode Internasional Indonesia) standar yang dianjurkan Fonnte if (!empty($targetNum)) { diff --git a/database/migrations/2026_02_14_235500_fix_peminjaman_fk.php b/database/migrations/2026_02_14_235500_fix_peminjaman_fk.php index 6a5409c..09fde3e 100644 --- a/database/migrations/2026_02_14_235500_fix_peminjaman_fk.php +++ b/database/migrations/2026_02_14_235500_fix_peminjaman_fk.php @@ -12,33 +12,30 @@ */ public function up(): void { + // 1. Hapus semua kemungkinan Foreign Key lama agar tidak bentrok + try { DB::statement('ALTER TABLE peminjaman DROP FOREIGN KEY peminjaman_ibfk_1'); } catch (\Exception $e) {} + try { DB::statement('ALTER TABLE peminjaman DROP FOREIGN KEY peminjaman_ibfk_2'); } catch (\Exception $e) {} + try { DB::statement('ALTER TABLE peminjaman DROP FOREIGN KEY fk_peminjaman_user'); } catch (\Exception $e) {} + try { DB::statement('ALTER TABLE peminjaman DROP FOREIGN KEY fk_peminjaman_buku'); } catch (\Exception $e) {} + + // Menghapus default foreign key dari Laravel + try { Schema::table('peminjaman', function (Blueprint $table) { $table->dropForeign(['id_user']); }); } catch (\Exception $e) {} + try { Schema::table('peminjaman', function (Blueprint $table) { $table->dropForeign(['id_buku']); }); } catch (\Exception $e) {} + + // 2. Samakan Tipe Data (Ditaruh di LUAR Schema::table agar pasti dieksekusi duluan) + DB::statement('ALTER TABLE peminjaman MODIFY id_user BIGINT UNSIGNED NOT NULL'); + DB::statement('ALTER TABLE peminjaman MODIFY id_buku INT NOT NULL'); + + // 3. Buat Relasi Baru yang Benar Schema::table('peminjaman', function (Blueprint $table) { - // Drop old FKs carefully - try { - DB::statement('ALTER TABLE peminjaman DROP FOREIGN KEY peminjaman_ibfk_1'); - } catch (\Exception $e) { - // Ignore if not exists - } - - try { - DB::statement('ALTER TABLE peminjaman DROP FOREIGN KEY peminjaman_ibfk_2'); - } catch (\Exception $e) { - // Ignore if not exists - } - - // Change column types - DB::statement('ALTER TABLE peminjaman MODIFY id_user BIGINT UNSIGNED NOT NULL'); - DB::statement('ALTER TABLE peminjaman MODIFY id_buku BIGINT UNSIGNED NOT NULL'); - - // Add correct foreign keys $table->foreign('id_user') ->references('id') ->on('users') ->onDelete('cascade'); $table->foreign('id_buku') - ->references('id') - ->on('bukus') + ->references('id_buku') + ->on('buku') ->onDelete('cascade'); }); } @@ -49,9 +46,9 @@ public function up(): void public function down(): void { Schema::table('peminjaman', function (Blueprint $table) { + // Hapus kedua relasi jika migration di-rollback $table->dropForeign(['id_user']); - // We cannot easily recreate the "wrong" FK without knowing exact wrong definition, - // but usually we don't need to revert a fix to a broken state. + $table->dropForeign(['id_buku']); }); } -}; +}; \ No newline at end of file