TIF_E41201157/imt/app/Http/Controllers/KriteriaController.php

100 lines
3.2 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Models\Kriteria;
use App\Models\TipeKriteria;
use Illuminate\Http\Request;
class KriteriaController extends Controller
{
// Menampilkan daftar semua kriteria
public function index()
{
$kriterias = Kriteria::all();
return view('pages.kriteria.index', compact('kriterias'));
}
// Menampilkan form untuk membuat kriteria baru
public function create()
{
$tipeKriterias = TipeKriteria::all();
return view('pages.kriteria.create', compact('tipeKriterias'));
}
// Menyimpan kriteria baru ke dalam database
public function store(Request $request)
{
// Validasi input yang diterima dari formulir
$request->validate([
'nama' => 'required',
'kode' => 'required',
'tipe_kriteria_id' => 'required',
'bobot' => 'required|numeric',
],[
'nama.required' => 'Nama harus diisi.',
'kode.required' => 'Kode harus diisi.',
'tipe_kriteria_id.required' => 'Tipe kriteria harus diisi.',
'bobot.required' => 'Bobot harus diisi.',
'bobot.numeric' => 'Bobot harus berupa angka.',
]);
// Simpan kriteria baru ke dalam database
Kriteria::create($request->all());
// Redirect kembali ke halaman indeks kriteria dengan pesan sukses
return redirect()->route('kriteria.index')
->with('success', 'Kriteria berhasil ditambahkan.');
}
// Menampilkan form untuk mengedit kriteria yang ada
public function edit($id)
{
$kriteria = Kriteria::find($id);
$tipeKriterias = TipeKriteria::all();
return view('pages.kriteria.edit', compact('kriteria', 'tipeKriterias'));
}
// Mengupdate kriteria yang ada di dalam database
public function update(Request $request, $id)
{
// Validasi input yang diterima dari formulir
$request->validate([
'kode'=> 'required',
'nama' => 'required',
'tipe_kriteria_id' => 'required',
'bobot' => 'required|numeric',
],[
'nama.required' => 'Nama harus diisi.',
'kode.required' => 'Kode harus diisi.',
'tipe_kriteria_id.required' => 'Tipe kriteria harus diisi.',
'bobot.required' => 'Bobot harus diisi.',
'bobot.numeric' => 'Bobot harus berupa angka.',
]);
// Temukan kriteria yang akan diubah
$kriteria = Kriteria::find($id);
// Update data kriteria dengan data baru
$kriteria->update($request->all());
// Redirect kembali ke halaman indeks kriteria dengan pesan sukses
return redirect()->route('kriteria.index')
->with('success', 'Kriteria berhasil diubah');
}
// Menghapus kriteria dari database
public function destroy($id)
{
// Temukan kriteria yang akan dihapus
$kriteria = Kriteria::find($id);
// Hapus kriteria dari database
$kriteria->delete();
// Redirect kembali ke halaman indeks kriteria dengan pesan sukses
return redirect()->route('kriteria.index')
->with('success', 'Kriteria berhasil dihapus');
}
}