Fix relasi database peminjaman
This commit is contained in:
parent
01c985e0f6
commit
57fd820dfa
|
|
@ -120,7 +120,18 @@ public function store(Request $request)
|
||||||
|
|
||||||
if ($response->successful() && ($response->json('status') == true)) {
|
if ($response->successful() && ($response->json('status') == true)) {
|
||||||
$waSuccess = 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) {
|
} catch (\Exception $e) {
|
||||||
\Illuminate\Support\Facades\Log::error("Error WA Pengiriman: " . $e->getMessage());
|
\Illuminate\Support\Facades\Log::error("Error WA Pengiriman: " . $e->getMessage());
|
||||||
|
|
|
||||||
|
|
@ -96,7 +96,7 @@ public function store(Request $request)
|
||||||
|
|
||||||
// Dapatkan nomor handphone pendaftar & Fonnte Token
|
// Dapatkan nomor handphone pendaftar & Fonnte Token
|
||||||
$targetNum = $peminjaman->anggota->no_hp ?? '';
|
$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
|
// Standarisasi Format Nomor ke awalan 62 (Kode Internasional Indonesia) standar yang dianjurkan Fonnte
|
||||||
if (!empty($targetNum)) {
|
if (!empty($targetNum)) {
|
||||||
|
|
|
||||||
|
|
@ -12,33 +12,30 @@
|
||||||
*/
|
*/
|
||||||
public function up(): void
|
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) {
|
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')
|
$table->foreign('id_user')
|
||||||
->references('id')
|
->references('id')
|
||||||
->on('users')
|
->on('users')
|
||||||
->onDelete('cascade');
|
->onDelete('cascade');
|
||||||
|
|
||||||
$table->foreign('id_buku')
|
$table->foreign('id_buku')
|
||||||
->references('id')
|
->references('id_buku')
|
||||||
->on('bukus')
|
->on('buku')
|
||||||
->onDelete('cascade');
|
->onDelete('cascade');
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -49,9 +46,9 @@ public function up(): void
|
||||||
public function down(): void
|
public function down(): void
|
||||||
{
|
{
|
||||||
Schema::table('peminjaman', function (Blueprint $table) {
|
Schema::table('peminjaman', function (Blueprint $table) {
|
||||||
|
// Hapus kedua relasi jika migration di-rollback
|
||||||
$table->dropForeign(['id_user']);
|
$table->dropForeign(['id_user']);
|
||||||
// We cannot easily recreate the "wrong" FK without knowing exact wrong definition,
|
$table->dropForeign(['id_buku']);
|
||||||
// but usually we don't need to revert a fix to a broken state.
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
Loading…
Reference in New Issue