TIF_NGANJUK_E41220949/app/Http/Controllers/Admin/InformasiController.php

121 lines
3.6 KiB
PHP

<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\Informasi;
use Illuminate\Support\Facades\Storage;
use Illuminate\Support\Facades\Validator;
class InformasiController extends Controller
{
// Menampilkan semua informasi
public function index()
{
$informasi = Informasi::orderBy('tanggal_informasi', 'desc')->get();
return view('admin.informasi.index', compact('informasi'));
}
// Form tambah informasi
public function create()
{
return view('admin.informasi.create');
}
// Simpan informasi baru
public function store(Request $request)
{
$validator = Validator::make($request->all(), [
'kategori_informasi' => 'required|in:berita,pengumuman',
'judul_informasi' => 'required|string|max:255',
'isi_informasi' => 'required|string',
'tanggal_informasi' => 'required|date',
'gambar_informasi' => 'nullable|image|mimes:jpeg,png,jpg,gif|max:2048',
]);
if ($validator->fails()) {
return redirect()->back()->withErrors($validator)->withInput();
}
$data = $request->only(
'kategori_informasi',
'judul_informasi',
'isi_informasi',
'tanggal_informasi'
);
if ($request->hasFile('gambar_informasi')) {
$data['gambar_informasi'] = $request->file('gambar_informasi')
->store('informasi', 'public');
}
Informasi::create($data);
return redirect()->route('admin.informasi.index')
->with('success','Informasi berhasil ditambahkan.');
}
// Form edit informasi
public function edit($id_informasi)
{
$informasi = Informasi::findOrFail($id_informasi);
return view('admin.informasi.edit', compact('informasi'));
}
// Update informasi
public function update(Request $request, $id_informasi)
{
$informasi = Informasi::findOrFail($id_informasi);
$validator = Validator::make($request->all(), [
'kategori_informasi' => 'required|in:berita,pengumuman',
'judul_informasi' => 'required|string|max:255',
'isi_informasi' => 'required|string',
'tanggal_informasi' => 'required|date',
'gambar_informasi' => 'nullable|image|mimes:jpeg,png,jpg,gif|max:2048',
]);
if ($validator->fails()) {
return redirect()->back()->withErrors($validator)->withInput();
}
$data = $request->only(
'kategori_informasi',
'judul_informasi',
'isi_informasi',
'tanggal_informasi'
);
if ($request->hasFile('gambar_informasi')) {
if ($informasi->gambar_informasi) {
Storage::disk('public')->delete($informasi->gambar_informasi);
}
$data['gambar_informasi'] = $request->file('gambar_informasi')
->store('informasi','public');
}
$informasi->update($data);
return redirect()->route('admin.informasi.index')
->with('success','Informasi berhasil diperbarui.');
}
// Hapus informasi
public function destroy($id_informasi)
{
$informasi = Informasi::findOrFail($id_informasi);
if ($informasi->gambar_informasi) {
Storage::disk('public')->delete($informasi->gambar_informasi);
}
$informasi->delete();
return redirect()->route('admin.informasi.index')
->with('success','Informasi berhasil dihapus.');
}
}