139 lines
4.1 KiB
PHP
139 lines
4.1 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use Illuminate\Support\Facades\Storage;
|
|
use Illuminate\Http\Request;
|
|
use DB;
|
|
|
|
class BeritaController extends Controller
|
|
{
|
|
public function index(Request $request)
|
|
{
|
|
$query = DB::table('berita');
|
|
|
|
if ($request->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);
|
|
}
|
|
} |