From 756b73e3eec885269b1e26fe31cb601a6b89cb9f Mon Sep 17 00:00:00 2001 From: Saufi Date: Mon, 18 May 2026 20:37:42 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20QR=20code=20guna=20Storage::disk('public?= =?UTF-8?q?')=20=E2=80=94=20imej=20tidak=20papar=20di=20admin=20panel?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Storage::put() guna default disk (local/private) menyebabkan fail disimpan di storage/app/private/public/qrcodes/ tapi URL /storage/qrcodes/... cari fail di storage/app/public/qrcodes/ melalui symlink — lokasi berbeza. - QrCodeService: guna disk('public'), path ringkas 'qrcodes/{token}.png' - View: Storage::disk('public')->url() untuk URL yang betul Co-Authored-By: Claude Sonnet 4.6 --- app/Services/QrCodeService.php | 18 +++++++----------- resources/views/admin/programs/qr.blade.php | 2 +- 2 files changed, 8 insertions(+), 12 deletions(-) diff --git a/app/Services/QrCodeService.php b/app/Services/QrCodeService.php index 876436d..09b5c27 100644 --- a/app/Services/QrCodeService.php +++ b/app/Services/QrCodeService.php @@ -12,25 +12,21 @@ class QrCodeService { public function generateForProgram(Program $program): ProgramQrCode { - // Deactivate existing active QR codes $program->qrCodes()->where('is_active', true)->update(['is_active' => false]); - $token = Str::random(48); - $url = route('public.checkin.show', $token); - $path = 'public/qrcodes/' . $token . '.png'; - $absPath = Storage::path($path); + $token = Str::random(48); + $url = route('public.checkin.show', $token); + $path = 'qrcodes/' . $token . '.png'; - // Ensure directory exists - Storage::makeDirectory('public/qrcodes'); + Storage::disk('public')->makeDirectory('qrcodes'); - // Generate QR code PNG (400×400, with quiet zone) $png = QrCode::format('png') ->size(400) ->margin(2) ->errorCorrection('H') ->generate($url); - Storage::put($path, $png); + Storage::disk('public')->put($path, $png); return $program->qrCodes()->create([ 'token' => $token, @@ -41,11 +37,11 @@ class QrCodeService public function getPublicUrl(ProgramQrCode $qrCode): string { - return Storage::url($qrCode->qr_image_path); + return Storage::disk('public')->url($qrCode->qr_image_path); } public function getRawPng(ProgramQrCode $qrCode): string { - return Storage::get($qrCode->qr_image_path); + return Storage::disk('public')->get($qrCode->qr_image_path); } } diff --git a/resources/views/admin/programs/qr.blade.php b/resources/views/admin/programs/qr.blade.php index f0821e2..e531e0f 100644 --- a/resources/views/admin/programs/qr.blade.php +++ b/resources/views/admin/programs/qr.blade.php @@ -22,7 +22,7 @@ @if($qrCode) {{-- QR Code Image --}}
- QR Code {{ $program->title }}