Adel-laravel/projek_pkl/app/Http/Controllers/JabatanController.php

54 lines
1.8 KiB
PHP

<?php
// app/Http/Controllers/JabatanController.php
namespace App\Http\Controllers;
use App\Models\Jabatan;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Validator;
class JabatanController extends Controller
{
// Menampilkan halaman utama Data Jabatan
public function index()
{
$jabatans = Jabatan::latest()->get();
return view('dashboard.sections.jabatan', compact('jabatans'));
}
// Menyimpan data jabatan baru
public function store(Request $request)
{
$validator = Validator::make($request->all(), ['jabatan' => 'required|string|max:255|unique:jabatans']);
if ($validator->fails()) {
return response()->json(['errors' => $validator->errors()], 422);
}
$jabatan = Jabatan::create($request->only('jabatan'));
return response()->json(['success' => 'Data Jabatan berhasil ditambahkan.', 'data' => $jabatan]);
}
// Mengambil data spesifik untuk form edit
public function show(Jabatan $jabatan)
{
return response()->json($jabatan);
}
// Memperbarui data jabatan
public function update(Request $request, Jabatan $jabatan)
{
$validator = Validator::make($request->all(), ['jabatan' => 'required|string|max:255|unique:jabatans,jabatan,' . $jabatan->id]);
if ($validator->fails()) {
return response()->json(['errors' => $validator->errors()], 422);
}
$jabatan->update($request->only('jabatan'));
return response()->json(['success' => 'Data Jabatan berhasil diperbarui.', 'data' => $jabatan]);
}
// Menghapus data jabatan
public function destroy(Jabatan $jabatan)
{
$jabatan->delete();
return response()->json(['success' => 'Data Jabatan berhasil dihapus.']);
}
}