Sebelum memulainya, kita sudah harus intall terlebih dahulu harus install beberapa aplikasi :
cara installnya buka website code igniter pilih code igniter 4.
pilih document ( userguidenya igniter )
* pilih installasion
* klik composer instalasion
* ketikkan di script yang ada di situ
* pilih yang --no-dev ( biar file lebih kecil )
* klo yang di atas scriptnya dia lebih full dan filenya lebih besar.
* klo installasi sudah selesai. kita jalankan apakah sudah selesai instalasi ini.
*kita buka di gitbash yang kita intall tadi, posisikan di folder htdoc ketikkan php spark serve untuk menlajankannya.
<?php
namespace App\Controllers;
use App\Controllers;
use App\Models\KaryawanModel;
class Karyawan extends BaseController
{
protected $karyawanModel;
public function __construct()
{
$this->karyawanModel = new KaryawanModel();
}
// ini method index awalnya namanya guys
public function index()
{
$data = [
'title' => 'Home | CV.OJOLPROGRAM'
// 'data_kar' => $this->KaryawanModel->getKaryawan();
];
return view('karyawan/home', $data);
}
// ini method about namanya guys
public function data()
{
// $karyawan = $this->karyawanModel->findAll();
$data = [
'title' => 'Data Karyawan',
'karyawan' => $this->karyawanModel->getKaryawan()
];
return view('karyawan/data', $data);
}
public function detail($nama)
{
$data = [
'title' => 'Detail Karyawan',
'karyawan' => $this->karyawanModel->getKaryawan($nama)
];
//jika komik tidak ada di tabel
if (empty($data['karyawan'])) {
throw new \CodeIgniter\Exceptions\PageNotFoundException('Nama Karyawan' . $nama . ' tidak ditemukan. ');
}
return view('karyawan/detail', $data);
}
// ini method contac namanya guys
public function cetak()
{
$data = [
'title' => 'Concact US',
'alamat' => [
[
'tipe' => 'Rumah',
'alamat' => 'Sungai Pinang Bungo Dani',
'kota' => 'Bungo'
],
[
'tipe' => 'Kantor',
'alamat' => 'Sungai Pinang Bungo Dani',
'kota' => 'Bungo'
]
]
];
return view('karyawan/cetak', $data);
}
public function create()
{
//session();
$data = [
'title' => 'Form Tambah Data Karyawan',
'validation=' => \Config\Services::validation()
];
return view('karyawan/create', $data);
}
public function save()
{
//untuk pengetahuan lebihnya baca di userguide code igniter wajib
// validasi input
if (!$this->validate([
'nama' => [
'rules' => 'required|is_unique[data_kar.nama]',
'errors' => [
'required' => '{field} Nama harus di isi.',
'is_unique' => '{field} Nama sudah terdaftar'
]
],
'ttl' => [
'rules' => 'required',
'errors' => [
'required' => '{field} TTL harus di isi'
]
],
'departemen' => [
'rules' => 'required',
'errors' => [
'required' => '{field} departemen harus di isi'
]
],
'jabatan' => [
'rules' => 'required',
'errors' => [
'required' => '{field} jabatan harus di isi'
]
],
// 'sampul' => 'uploaded[sampul]'
'foto' => [
'rules' => 'max_size[foto,1024]|is_image[foto]|mime_in[foto,image/jpg,image/jpeg,image/png]',
'errors' => [
'max_size' => 'Ukuran gambar terlalu besar',
'is_image' => 'Yang kalian pilih bukan gambar',
'mime_in' => 'Yang kalian pilih bukan gambar',
]
],
'email' => [
'rules' => 'required',
'errors' => [
'required' => '{field} Email harus di isi'
]
],
'no_hp' => [
'rules' => 'required',
'errors' => [
'required' => '{field} No Hp harus di isi'
]
]
])) {
// $validation = \Config\Services::validation();
// return redirect()->to('/komik/create')->withInput()->with('validation', $validation);
return redirect()->to('/karyawan/create')->withInput();
}
// ambil gambar yang di inputkan tadi
$fileFoto = $this->request->getFile('foto');
// apakah tidak ada gambar nama yang di upload
if ($fileFoto->getError() == 4) {
$namaFoto = 'default.png';
} else {
$namaFoto = $fileFoto->getRandomName();
// pindahkan file ke folder img
$fileFoto->move('img', $namaFoto);
}
// // generate nama sampul random
// $namaSampul = $fileSampul->getRandomName();
// // dd($fileSampul); ( untuk cek gambarnya udah bisa blom)
// // pindahkan file gambartadi ke folder yang kita inginkan
// $fileSampul->move('img', $namaSampul);
// // ambil nama file
// // $namaSampul = $fileSampul->getName();
// dd($this->request->getVar());
// Script di atas untuk cek apakah data sudah terpanggil atau belom
// $slug = url_title($this->request->getVar('judul'), '-', true);
$this->karyawanModel->save([
'nama' => $this->request->getVar('nama'),
'ttl' => $this->request->getVar('ttl'),
'departemen' => $this->request->getVar('departemen'),
'jabatan' => $this->request->getVar('jabatan'),
'foto' => $namaFoto,
'email' => $this->request->getVar('email'),
'no_hp' => $this->request->getVar('no_hp'),
]);
session()->setFlashdata('pesan', 'Data Berhasil Ditambahkan.');
return redirect()->to('/karyawan/data');
}
public function delete($id)
{
// cari gambar berdasarkan id
$karyawan = $this->karyawanModel->find($id);
// cek jika file gambarnya default
if ($karyawan['foto'] != 'default.png') {
// hapus gambar
unlink('img/' . $karyawan['foto']);
}
$this->karyawanModel->delete($id);
session()->setFlashdata('pesan', 'Data Berhasil dihapus.');
return redirect()->to('/karyawan/data');
}
public function edit($nama)
{
$data = [
'title' => 'Form Update Data Komik',
'validation=' => \Config\Services::validation(),
'data_kar' => $this->karyawanModel->getKaryawan($nama)
];
return view('karyawan/edit', $data);
}
public function update($id)
{
// cek judul dulu
$karyawanLama = $this->karyawanModel->getKaryawan($this->request->getVar('nama'));
if ($karyawanLama['nama'] == $this->request->getVar('nama')) {
$rule_judul = 'required';
} else {
$rule_judul = 'required';
}
if (!$this->validate([
'nama' => [
'rules' => $rule_judul,
'errors' => [
'required' => '{field} Nama harus di isi.',
'is_unique' => '{field} Nama sudah terdaftar'
]
],
'ttl' => [
'rules' => 'required',
'errors' => [
'required' => '{field} TTL harus di isi'
]
],
'departemen' => [
'rules' => 'required',
'errors' => [
'required' => '{field} departemen harus di isi'
]
],
'jabatan' => [
'rules' => 'required',
'errors' => [
'required' => '{field} jabatan harus di isi'
]
],
// 'sampul' => 'uploaded[sampul]'
'foto' => [
'rules' => 'max_size[foto,1024]|is_image[foto]|mime_in[foto,image/jpg,image/jpeg,image/png]',
'errors' => [
'max_size' => 'Ukuran gambar terlalu besar',
'is_image' => 'Yang kalian pilih bukan gambar',
'mime_in' => 'Yang kalian pilih bukan gambar',
]
],
'email' => [
'rules' => 'required',
'errors' => [
'required' => '{field} Email harus di isi'
]
],
'no_hp' => [
'rules' => 'required',
'errors' => [
'required' => '{field} No Hp harus di isi'
]
]
])) {
// $validation = \Config\Services::validation();
return redirect()->to('/karyawan/edit/' . $this->request->getVar('nama'))->withInput();
}
// ambil file sampulnya
$fileFoto = $this->request->getFile('foto');
// cek gambar. apakah btetap gambar lama
if ($fileFoto->getError() == 4) {
$namaFoto = $this->request->getVar('fotoLama');
} else {
// generatge nama file random
$namaFoto = $fileFoto->getRandomName();
// pindahkan gambar/ upload gamabr
$fileFoto->move('img', $namaFoto);
// hapus file yang lama
unlink('img/' . $this->request->getVar('fotoLama'));
}
// dd($this->request->getVar());
$nama = url_title($this->request->getVar('nama'), '-', true);
$this->karyawanModel->save([
'id' => $id,
'nama' => $this->request->getVar('nama'),
'ttl' => $this->request->getVar('ttl'),
'departemen' => $this->request->getVar('departemen'),
'jabatan' => $this->request->getVar('jabatan'),
'foto' => $namaFoto,
'email' => $this->request->getVar('email'),
'no_hp' => $this->request->getVar('no_hp')
]);
session()->setFlashdata('pesan', 'Data Berhasil Diubah.');
return redirect()->to('/karyawan/data');
}
//--------------------------------------------------------------------
}
0 Response to "Code Igniter 4 - Create, Read, Update & Delete ( Crud Data Karyawan )"
Posting Komentar