project-ta/.history/app/Http/Controllers/UserLayananController_20260...

74 lines
1.7 KiB
PHP

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\Layanan;
use App\Models\Penghuni;
use Illuminate\Support\Facades\Auth;
class UserLayananController extends Controller
{
public function create()
{
return view('user.layanan.create');
}
public function store(Request $request)
{
$request->validate([
'kategori_masalah' => 'required',
'deskripsi' => 'required|min:10',
'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048'
]);
$penghuni = Penghuni::where('email', Auth::user()->email)->firstOrFail();
$fotoPath = null;
if ($request->hasFile('foto')) {
$fotoPath = $request->file('foto')->store('pengaduan', 'public');
}
Layanan::create([
'penghuni_id' => $penghuni->id,
'tanggal_pengaduan' => now(),
'kategori_masalah' => $request->kategori_masalah,
'deskripsi' => $request->deskripsi,
'foto' => $fotoPath,
'status' => 'diajukan'
]);
return redirect()->route('user.layanan.status')
->with('success', 'Pengaduan berhasil dikirim!');
}
public function status()
{
$penghuni = Penghuni::where('email', Auth::user()->email)->firstOrFail();
if (!$penghuni) {
return back()->with('error', 'Data penghuni tidak ditemukan!');
}
$layanan = Layanan::where('penghuni_id', $penghuni->id)
->latest()
->get();
return view('user.layanan.status', compact('layanan'));
}
public function destroy($id)
{
$data = \App\Models\Layanan::findOrFail($id);
if ($data->penghuni_id != a()->id) {
abort(403);
}
$data->delete();
return back()->with('success', 'Pengaduan berhasil dihapus');
}
}