TIF_NGANJUK_E41220949/app/Http/Controllers/AduanController.php

64 lines
1.8 KiB
PHP

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\AduanTps;
use App\Models\LokasiTps;
class AduanController extends Controller
{
public function index(Request $request)
{
$title = 'Aduan TPS';
// TPS terpilih (jika dari SIG / detail)
$tps = null;
if ($request->filled('tps_id')) {
$tps = LokasiTps::with('kategori')
->where('id_tps', $request->tps_id)
->first();
}
// List TPS untuk dropdown (jika dari navbar)
$listTps = LokasiTps::orderBy('nama_tps')->get();
return view('user.aduan-tps', compact(
'title',
'tps',
'listTps'
));
}
public function store(Request $request)
{
$request->validate([
'lokasi_tps_id' => 'required|exists:lokasi_tps,id_tps',
'nama_pelapor' => 'required',
'alamat_pelapor'=> 'required',
'no_pelapor' => 'required',
'isi_aduan' => 'required',
'bukti_foto' => 'nullable|image|max:2048'
]);
$foto = null;
if ($request->hasFile('bukti_foto')) {
$foto = $request->file('bukti_foto')->store('aduan', 'public');
}
AduanTps::create([
'lokasi_tps_id' => $request->lokasi_tps_id,
'nama_pelapor' => $request->nama_pelapor,
'alamat_pelapor'=> $request->alamat_pelapor,
'no_pelapor' => $request->no_pelapor,
'isi_aduan' => $request->isi_aduan,
'tanggal_aduan' => now(),
'bukti_foto' => $foto
]);
return redirect()
->route('user.aduan')
->with('success', 'Aduan berhasil dikirim');
}
}