119 lines
3.2 KiB
PHP
119 lines
3.2 KiB
PHP
<?php
|
|
namespace App\Http\Controllers;
|
|
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Facades\Cache;
|
|
|
|
class KaryawanController extends Controller
|
|
{
|
|
// public function init()
|
|
// {
|
|
// $karyawan = [
|
|
// 1 => ['nama' => 'Budi', 'umur' => 20, 'jabatan' => 'Manager'],
|
|
// 2 => ['nama' => 'Siti', 'umur' => 21, 'jabatan' => 'Staff'],
|
|
// 3 => ['nama' => 'Andi', 'umur' => 22, 'jabatan' => 'Staff'],
|
|
// 4 => ['nama' => 'Caca', 'umur' => 23, 'jabatan' => 'Staff'],
|
|
// 5 => ['nama' => 'Rudy', 'umur' => 24, 'jabatan' => 'Staff'],
|
|
// ];
|
|
|
|
// Cache::put('karyawan', $karyawan, now()->addMinutes(60));
|
|
// return 'Data karyawan berhasil dimasukkan ke cache';
|
|
// }
|
|
|
|
public function index()
|
|
{
|
|
$karyawan = Cache::get('karyawan', []);
|
|
return view('karyawan.index', compact('karyawan'));
|
|
}
|
|
|
|
public function create()
|
|
{
|
|
return view('karyawan.create');
|
|
}
|
|
|
|
public function store(Request $request)
|
|
{
|
|
$request->validate([
|
|
'nama' => 'required',
|
|
'umur' => 'required|integer',
|
|
'jabatan' => 'required',
|
|
]);
|
|
|
|
$karyawanBaru = [
|
|
'nama' => $request->nama,
|
|
'umur' => $request->umur,
|
|
'jabatan' => $request->jabatan,
|
|
];
|
|
|
|
$karyawan = Cache::get('karyawan', []);
|
|
$karyawan[] = $karyawanBaru;
|
|
Cache::put('karyawan', $karyawan, now()->addMinutes(60));
|
|
|
|
return redirect()->route('karyawan.index')->with('success', 'Data berhasil ditambahkan!');
|
|
}
|
|
|
|
public function show($id)
|
|
{
|
|
$karyawan = Cache::get('karyawan', []);
|
|
$data = $karyawan[$id] ?? null;
|
|
|
|
if (!$data) {
|
|
abort(404, 'Karyawan tidak ditemukan');
|
|
}
|
|
return view('karyawan.show', compact('data'));
|
|
}
|
|
|
|
public function edit($id)
|
|
{
|
|
$karyawan = Cache::get('karyawan', []);
|
|
if (!isset($karyawan[$id])) {
|
|
return redirect()->route('karyawan.index')->with('error', 'Data tidak ditemukan');
|
|
}
|
|
|
|
$data = $karyawan[$id];
|
|
|
|
return view('karyawan.edit', compact('data', 'id'));
|
|
}
|
|
|
|
|
|
public function update(Request $request, $id)
|
|
{
|
|
$request->validate([
|
|
'nama' => 'required',
|
|
'umur' => 'required|integer',
|
|
'jabatan' => 'required',
|
|
]);
|
|
|
|
$karyawan = Cache::get('karyawan', []);
|
|
if (!isset($karyawan[$id])) return redirect()->route('karyawan.index')->with('error', 'Data tidak ditemukan');
|
|
|
|
$karyawan[$id] = [
|
|
'nama' => $request->nama,
|
|
'umur' => $request->umur,
|
|
'jabatan' => $request->jabatan,
|
|
];
|
|
|
|
Cache::put('karyawan', $karyawan, now()->addMinutes(60));
|
|
|
|
return redirect()->route('karyawan.index')->with('success', 'Data berhasil diperbarui!');
|
|
}
|
|
|
|
public function destroy($id)
|
|
{
|
|
$karyawan = Cache::get('karyawan', []);
|
|
|
|
if (!isset($karyawan[$id])) {
|
|
return redirect()->route('karyawan.index')->with('error', 'Data tidak ditemukan');
|
|
}
|
|
|
|
unset($karyawan[$id]);
|
|
|
|
// Simpan ulang ke cache di sini
|
|
Cache::put('karyawan', $karyawan, now()->addMinutes(60));
|
|
|
|
return redirect()->route('karyawan.index')->with('success', 'Data berhasil dihapus!');
|
|
}
|
|
|
|
|
|
}
|