filled('search')) { $query->where(function ($q) use ($request) { $q->where('judul', 'LIKE', "%{$request->search}%"); }); } if ($request->filled('date')) { $query->whereDate('created_at', '=', date('Y-m-d', strtotime($request->date))); } if ($request->filled('kategori_berita')) { $query->where('kategori_berita', '=', $request->kategori_berita); } $tabel_berita = $query->orderBy('created_at', 'DESC')->paginate(10); return view('Berita/Berita', ['tabel_berita' => $tabel_berita]); } public function edit($id) { $data = DB::table('berita')->where('id', $id)->first(); if (!$data) { return redirect()->back()->with('error', 'Data tidak ditemukan'); } return view('Berita/Edit Berita', ['berita' => $data]); } public function update(Request $request, $id) { $request->validate([ 'judul' => 'required|string|max:255', 'tanggal_publikasi' => 'required|date', 'kategori_berita' => 'required|string', 'isi_berita' => 'required|string', 'file' => 'nullable|mimes:jpeg,jpg,png|max:10240' ]); $data = DB::table('berita')->where('id', $id)->first(); if (!$data) { return redirect()->back()->with('error', 'Data tidak ditemukan'); } $updateData = [ 'judul' => $request->judul, 'created_at' => $request->tanggal_publikasi, 'kategori_berita' => $request->kategori_berita, 'isi_berita' => $request->isi_berita, ]; if ($request->hasFile('file')) { $file = $request->file('file'); $fileName = 'Foto Berita ' . $id . '.' . $file->getClientOriginalExtension(); if ($data->gambar_url) { Storage::disk('public')->delete('Berita/' . $data->gambar_url); } $file->storeAs('Berita', $fileName, 'public'); $updateData['gambar_url'] = $fileName; } DB::table('berita')->where('id', $id)->update($updateData); return redirect()->route('Berita')->with('edit_success', true); } public function upload() { return view('Berita/Upload Berita'); } public function store(Request $request) { $request->validate([ 'judul' => 'required|string|max:255', 'tanggal_publikasi' => 'required|date', 'kategori_berita' => 'required|string', 'isi_berita' => 'required|string', 'file' => 'mimes:jpeg,jpg,png|max:10240' ]); $Data = [ 'judul' => $request->judul, 'created_at' => $request->tanggal_publikasi, 'kategori_berita' => $request->kategori_berita, 'isi_berita' => $request->isi_berita, 'id_akun' => auth()->id(), ]; if ($request->hasFile('file')) { $file = $request->file('file'); $fileName = 'Foto Berita ' . time() . '.' . $file->getClientOriginalExtension(); $file->storeAs('Berita', $fileName, 'public'); $Data['gambar_url'] = $fileName; } DB::table('berita')->insert($Data); return redirect()->route('Berita')->with('upload_success', true); } public function destroy($id) { $data = DB::table('berita')->where('id', $id)->first(); if (!$data) { return redirect()->route('Berita')->with('error', 'Data tidak ditemukan'); } if ($data->gambar_url) { Storage::disk('public')->delete('Berita/' . $data->gambar_url); } DB::table('berita')->where('id', $id)->delete(); return redirect()->route('Berita')->with('delete_success', true); } }