MIF_E31220334/app/Controllers/SubKriteriaController.php

95 lines
3.5 KiB
PHP

<?php
namespace App\Controllers;
// Mengimpor model SubKriteria dan Kriteria
use App\Models\SubKriteriaModel;
use App\Models\KriteriaModel;
class SubKriteriaController extends BaseController
{
// Deklarasi properti model
protected $subKriteriaModel;
protected $kriteriaModel;
// Konstruktor untuk inisialisasi model
public function __construct()
{
// Inisialisasi model SubKriteria
$this->subKriteriaModel = new SubKriteriaModel();
// Inisialisasi model Kriteria
$this->kriteriaModel = new KriteriaModel();
}
// Fungsi untuk menampilkan semua data sub-kriteria
public function index()
{
$data['subkriteria'] = $this->subKriteriaModel
->select('sub_kriteria.*, kriteria.nama_kriteria') // Ambil semua kolom sub_kriteria dan nama_kriteria
->join('kriteria', 'kriteria.id = sub_kriteria.kriteria_id') // Gabung tabel kriteria berdasarkan kriteria_id
->orderBy('sub_kriteria.id', 'ASC') // Urutkan berdasarkan ID sub_kriteria secara ascending
->findAll(); // Ambil semua data
// Tampilkan data ke view 'sub-kriteria/index'
return view('sub-kriteria/index', $data);
}
// Fungsi untuk menampilkan form tambah sub-kriteria
public function create()
{
// Ambil semua data kriteria untuk ditampilkan dalam dropdown
$data['kriteria'] = $this->kriteriaModel->findAll();
// Tampilkan form tambah ke view 'sub-kriteria/create'
return view('sub-kriteria/create', $data);
}
// Fungsi untuk menyimpan data sub-kriteria baru ke database
public function store()
{
// Simpan data yang dikirim dari form ke tabel sub_kriteria
$this->subKriteriaModel->save([
'kriteria_id' => $this->request->getPost('kriteria_id'), // Ambil nilai kriteria_id dari form
'nama' => $this->request->getPost('nama'), // Ambil nama sub-kriteria
]);
// Redirect ke halaman sub-kriteria dengan pesan sukses
return redirect()->to('admin/sub-kriteria')->with('success', 'Data berhasil ditambahkan.');
}
// Fungsi untuk menampilkan form edit sub-kriteria
public function edit($id)
{
// Ambil data sub-kriteria berdasarkan ID
$data['subkriteria'] = $this->subKriteriaModel->find($id);
// Ambil semua kriteria untuk dropdown pilihan
$data['kriteria'] = $this->kriteriaModel->findAll();
// Tampilkan form edit ke view 'sub-kriteria/edit'
return view('sub-kriteria/edit', $data);
}
// Fungsi untuk menyimpan perubahan data sub-kriteria
public function update($id)
{
// Update data berdasarkan ID dengan data dari form
$this->subKriteriaModel->update($id, [
'kriteria_id' => $this->request->getPost('kriteria_id'), // ID kriteria yang dipilih
'nama' => $this->request->getPost('nama'), // Nama sub-kriteria yang diubah
]);
// Redirect ke halaman sub-kriteria dengan pesan sukses
return redirect()->to('admin/sub-kriteria')->with('success', 'Data berhasil diperbarui.');
}
// Fungsi untuk menghapus data sub-kriteria berdasarkan ID
public function destroy($id)
{
// Hapus data sub-kriteria
$this->subKriteriaModel->delete($id);
// Redirect ke halaman sub-kriteria dengan pesan sukses
return redirect()->to('admin/sub-kriteria')->with('success', 'Data berhasil dihapus.');
}
}