64 lines
1.8 KiB
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');
|
|
}
|
|
}
|