MIF_E31221225/app/Http/Controllers/Admin/ProdiLanjutanController.php

84 lines
2.6 KiB
PHP

<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use App\Models\ProdiLanjutan;
use App\Models\Mapel;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Log;
class ProdiLanjutanController extends Controller
{
public function index()
{
$prodis = ProdiLanjutan::with('mapels')->get();
return view('admin.angket.prodi.index', compact('prodis'))
->with('success', session('success'))
->withErrors(session('error'));
}
public function create()
{
$mapels = Mapel::all();
return view('admin.angket.prodi.create', compact('mapels'));
}
public function store(Request $request)
{
$request->validate([
'nama' => 'required',
'mapel_id' => 'array|required'
]);
try {
$prodi = ProdiLanjutan::create(['nama' => $request->nama]);
$prodi->mapels()->attach($request->mapel_id);
return redirect()->route('admin.prodi-lanjutan.index')->with('success', 'Prodi berhasil ditambahkan');
} catch (\Exception $e) {
Log::error('Gagal menambahkan prodi: ' . $e->getMessage());
return back()->withInput()->withErrors('Terjadi kesalahan saat menambahkan prodi.');
}
}
public function edit($id)
{
$prodi = ProdiLanjutan::findOrFail($id);
$mapels = Mapel::all();
return view('admin.angket.prodi.edit', compact('prodi', 'mapels'));
}
public function update(Request $request, $id)
{
$request->validate([
'nama' => 'required',
'mapel_id' => 'array|required'
]);
try {
$prodi = ProdiLanjutan::findOrFail($id);
$prodi->update(['nama' => $request->nama]);
$prodi->mapels()->sync($request->mapel_id);
return redirect()->route('admin.prodi-lanjutan.index')->with('success', 'Prodi berhasil diperbarui');
} catch (\Exception $e) {
Log::error('Gagal memperbarui prodi: ' . $e->getMessage());
return back()->withInput()->withErrors('Terjadi kesalahan saat memperbarui prodi.');
}
}
public function destroy($id)
{
try {
$prodi = ProdiLanjutan::findOrFail($id);
$prodi->mapels()->detach();
$prodi->delete();
return back()->with('success', 'Prodi berhasil dihapus');
} catch (\Exception $e) {
Log::error('Gagal menghapus prodi: ' . $e->getMessage());
return back()->withErrors('Terjadi kesalahan saat menghapus prodi.');
}
}
}