MIF_E31210228/app/Http/Controllers/GejalaController.php

117 lines
3.3 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Models\DetailPenyakit;
use App\Models\Gejala;
use App\Models\NilaiKeyakinan;
use Illuminate\Http\Request;
class GejalaController extends Controller
{
public function index()
{
$gejala = Gejala::all();
return view('admin.pages.gejala', [
'gejala' => $gejala,
]);
}
public function store(Request $request)
{
$request->validate([
'kode' => 'required|unique:tb_gejala',
'nama' => 'required',
'foto' => 'nullable|image',
// 'link_penjelasan' => 'required'
], [
'kode.required' => 'Kode tidak boleh kosong',
'kode.unique' => 'Kode sudah ada',
'nama.required' => 'Nama tidak boleh kosong',
'foto.image' => 'Foto harus berupa gambar',
// 'link_penjelasan.required' => 'Link penjelasan tidak boleh kosong'
]);
if ($request->hasFile('foto')) {
$file = $request->file('foto');
$nama_file = time() . "_" . $file->getClientOriginalName();
$tujuan_upload = 'foto_gejala';
$file->move($tujuan_upload, $nama_file);
} else {
$nama_file = null;
}
$nilai = new Gejala();
$nilai->nama = $request->nama;
$nilai->kode = $request->kode;
$nilai->foto = $nama_file;
// $nilai->link_penjelasan = $request->link_penjelasan;
$nilai->save();
return redirect()->back()->with('store', 'Data berhasil ditambahkan');
}
public function update(Request $request, $id)
{
$request->validate([
'nama' => 'required',
'kode' => 'required|unique:tb_gejala,kode,' . $id . ',id',
'foto' => 'image',
// 'link_penjelasan' => 'required'
], [
'nama.required' => 'Nama tidak boleh kosong',
'kode.required' => 'Kode tidak boleh kosong',
'kode.unique' => 'Kode sudah ada',
'foto.image' => 'Foto harus berupa gambar',
// 'link_penjelasan.required' => 'Link penjelasan tidak boleh kosong'
]);
if ($request->hasFile('foto')) {
// hapus foto lama
$foto = Gejala::find($id);
if ($foto->foto != null) {
unlink('foto_gejala/' . $foto->foto);
}
$file = $request->file('foto');
$nama_file = time() . "_" . $file->getClientOriginalName();
$tujuan_upload = 'foto_gejala';
$file->move($tujuan_upload, $nama_file);
}
$nilai = Gejala::find($id);
$nilai->nama = $request->nama;
$nilai->kode = $request->kode;
$nilai->foto = $nama_file;
// $nilai->link_penjelasan = $request->link_penjelasan;
$nilai->save();
return redirect()->back()->with('update', 'Data berhasil diubah');
}
public function destroy($id)
{
$nilai = Gejala::find($id);
$cek = DetailPenyakit::where('gejala_id', $id)->count();
if ($cek > 0) {
return redirect()->back()->with('gagal', 'Data tidak bisa dihapus');
}
if ($nilai->foto != null) {
unlink('foto_gejala/' . $nilai->foto);
}
$nilai->delete();
return redirect()->back()->with('destroy', 'Data berhasil dihapus');
}
}