user(); // Ambil data pengguna dari request if ($user->role == 'admin') { // Jika pengguna adalah admin, hitung total berdasarkan tindakan_id $laporan = Pelaporan::with('tindakan','user')->get(); } elseif ($user->role == 'user') { // Jika pengguna adalah pengguna biasa, hitung riwayat pelaporan milik pengguna tersebut $laporan = Pelaporan::where('user_id', $user->id)->get(); // Menghitung total riwayat pelaporan yang dimiliki oleh pengguna $count = $laporan->count(); } $pelaporan = Pelaporan::query(); if ($user->role == 'user') { $pelaporan->where('user_id', $user->id); // Filter berdasarkan user_id jika pengguna adalah user } if ($request->has('search')) { $pelaporan->where('judul', 'LIKE', '%' . $request->search . '%'); } $pelaporan = $pelaporan->get(); // atau paginate() tergantung kebutuhan Anda return view('users.pelaporan.index', compact('pelaporan','laporan')); } public function create() { $laporan = Pelaporan::with('tindakan','user')->get(); return view('users.pelaporan.create', compact('laporan',)); } public function store(Request $request) { $request->validate([ 'judul' => 'required', 'keterangan' => 'required', 'tanggal' => 'required', 'lokasi' => 'required', 'status' => 'required', 'saran' => 'required', 'foto' => 'nullable|image|mimes:jpeg,png,jpg,gif', ],[ 'judul.Required'=>'Judul Wajib Diisi', 'keterangan.Required'=>'Keterangan Wajib Diisi', 'tanggal.Required'=>'Tanggal Wajib Diisi', 'lokasi.Required'=>'Lokasi Wajib Diisi', 'status.Required'=>'Status Wajib Diisi', 'saran.Required' => 'Saran Wajib Diisi', 'foto.nullable'=>'Foto Tidak Boleh Kosong', 'foto.image'=>'Foto Harus Berupa Image ', 'foto.mimes'=>'Foto Harus JPEG,PNG,JPG,GIF', ]); $pelaporan = new Pelaporan(); $pelaporan->judul = $request->input('judul'); $pelaporan->keterangan = $request->input('keterangan'); $pelaporan->tanggal = $request->input('tanggal'); $pelaporan->lokasi = $request->input('lokasi'); $pelaporan->saran = $request->input('saran'); $pelaporan->status = $request->input('status'); $pelaporan->user_id = auth()->id(); if ($request->hasFile('foto')) { $fotos = time().'.'.$request->foto->extension(); $request->foto->move(public_path('foto'), $fotos); $pelaporan->foto = $fotos; } $pelaporan->save(); return redirect()->route('pelaporan.index')->with('success', 'Pelaporan berhasil disimpan.'); } public function edit($id) { $laporan = Pelaporan::with('tindakan','user')->get(); $pelaporans = Pelaporan::find($id); return view('users.pelaporan.update', compact('pelaporans', 'laporan')); } public function update(Request $request, $id) { $request->validate([ 'judul' => 'required', 'keterangan' => 'required', 'tanggal' => 'required', 'lokasi' => 'required', 'status' => 'required', 'foto' => 'nullable|image|mimes:jpeg,png,jpg,gif', ],[ 'judul.Required'=>'Judul Wajib Diisi', 'keterangan.Required'=>'Keterangan Wajib Diisi', 'tanggal.Required'=>'Tanggal Wajib Diisi', 'lokasi.Required'=>'Lokasi Wajib Diisi', 'status.Required'=>'Status Wajib Diisi', 'foto.nullable'=>'Foto Tidak Boleh Kosong', 'foto.image'=>'Foto Harus Berupa Image ', 'foto.mimes'=>'Foto Harus JPEG,PNG,JPG,GIF', ]); $pelaporan = Pelaporan::find($id); $pelaporan->update($request->all()); if ($request->hasFile('foto')) { $fotoPath = $request->file('foto')->store('uploads'); $pelaporan->foto = $fotoPath; $pelaporan->save(); } return redirect()->route('pelaporan.index')->with('success', 'Pelaporan berhasil diperbarui.'); } public function destroy($id) { $pelaporan = Pelaporan::find($id); $pelaporan->delete(); return redirect()->route('pelaporan.index')->with('success', 'Pelaporan berhasil dihapus.'); } }