MIF_E31221244/app/Http/Controllers/PenyakitController.php

71 lines
2.2 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Models\Penyakit;
use Illuminate\Http\Request;
use App\Http\Requests\PenyakitRequest;
use Illuminate\Support\Facades\Storage;
use RealRashid\SweetAlert\Facades\Alert;
class PenyakitController extends Controller
{
public function index()
{
$penyakit = Penyakit::all();
return view('masterdata.data_penyakit', compact('penyakit'));
}
public function store(PenyakitRequest $request)
{
$data = $request->validated();
if ($request->hasFile('gambar')) {
$data['gambar'] = $request->file('gambar')->store('penyakit', 'public');
}
Penyakit::create($data);
Alert::toast('Berhasil Menambahkan Penyakit ', 'success')->position('top-end');
return redirect()->back();
}
public function update(Request $request, $id)
{
$validatedData = $request->validate([
'nama_penyakit' => 'required|string|max:255',
'penjelasan' => 'required|string',
'penanganan' => 'required|string',
]);
$penyakit = Penyakit::findOrFail($id);
if ($request->hasFile('gambar')) {
if ($penyakit->gambar && Storage::exists('public/' . $penyakit->gambar)) {
Storage::delete('public/' . $penyakit->gambar);
}
$gambar = $request->file('gambar');
$gambar->storeAs('public/penyakit', $gambar->hashName());
$validatedData['gambar'] = 'penyakit/' . $gambar->hashName();
} else {
$validatedData['gambar'] = $penyakit->gambar;
}
try {
$penyakit->update($validatedData);
Alert::toast('Berhasil Mengupdate Data Penyakit', 'success')->position('top-end');
return redirect()->back();
} catch (\Throwable $th) {
Alert::toast('Gagal Mengupdate Data Penyakit', 'error')->position('top-end');
return redirect()->back();
}
}
public function destroy($id)
{
$user = Penyakit::findOrFail($id);
$user->delete();
Alert::toast('Berhasil Menghapus Penyakit', 'success')->position('top-end');
return redirect()->back();
}
}