MIF_E31222508/app/Http/Controllers/PenyakitController.php

81 lines
2.2 KiB
PHP

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\Penyakit;
class PenyakitController extends Controller
{
// Menampilkan semua data penyakit
public function index()
{
$penyakit = Penyakit::all();
return view('admin.penyakit', compact('penyakit'));
}
// Menyimpan data penyakit baru
public function store(Request $request)
{
$request->validate([
'kode' => 'required|unique:penyakit',
'nama_penyakit' => 'required',
'gambar' => 'nullable|image|mimes:jpeg,png,jpg,gif|max:2048'
]);
$gambarPath = null;
if ($request->hasFile('gambar')) {
$gambarPath = $request->file('gambar')->store('penyakit', 'public');
}
Penyakit::create([
'kode' => $request->kode,
'nama_penyakit' => $request->nama_penyakit,
'gambar' => $gambarPath
]);
return redirect()->route('admin.penyakit')->with('success', 'Penyakit berhasil ditambahkan!');
}
// Hapus data penyakit
public function destroy($id)
{
$penyakit = Penyakit::findOrFail($id);
$penyakit->delete();
return redirect()->route('admin.penyakit')->with('success', 'Penyakit berhasil dihapus!');
}
// Menampilkan form edit penyakit
public function edit($id)
{
$penyakit = Penyakit::findOrFail($id);
return view('admin.editpenyakit', compact('penyakit'));
}
// Memproses update penyakit
public function update(Request $request, $id)
{
$request->validate([
'kode' => 'required|string|max:10',
'nama_penyakit' => 'required|string|max:255',
'gambar' => 'nullable|image|mimes:jpeg,png,jpg,gif|max:2048'
]);
$penyakit = Penyakit::findOrFail($id);
// Jika ada gambar baru
if ($request->hasFile('gambar')) {
$gambarPath = $request->file('gambar')->store('penyakit', 'public');
$penyakit->gambar = $gambarPath;
}
$penyakit->kode = $request->kode;
$penyakit->nama_penyakit = $request->nama_penyakit;
$penyakit->save();
return redirect()->route('admin.penyakit')->with('success', 'Penyakit berhasil diperbarui!');
}
}