MIF_E31222641/app/Http/Controllers/TrainingDataController.php

53 lines
1.7 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Models\Student;
use App\Models\StudentValue;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
class TrainingDataController extends Controller
{
// Tampilkan semua data latih
public function index()
{
$students = Student::where('jenis_data', 'training')->with('studentValues')->get();
return view('pages.data-latih', compact('students'));
}
// Tampilkan form edit data latih
public function edit($id)
{
$student = Student::where('jenis_data', 'training')->with('studentValues')->findOrFail($id);
return view('pages.edit-data-latih', compact('student'));
}
// Update data latih
public function update(Request $request, $id)
{
$student = Student::where('jenis_data', 'training')->findOrFail($id);
$student->update($request->only(['nisn', 'name', 'tahun_angkatan', 'true_status']));
// Update nilai/atribut
$values = $request->input('values', []);
foreach ($values as $key => $value) {
StudentValue::updateOrCreate(
['student_id' => $student->id, 'key' => $key],
['value' => $value]
);
}
return redirect()->route('training.index')->with('success', 'Data latih berhasil diupdate.');
}
// Hapus data latih
public function destroy($id)
{
$student = Student::where('jenis_data', 'training')->findOrFail($id);
DB::transaction(function () use ($student) {
$student->studentValues()->delete();
$student->delete();
});
return redirect()->route('training.index')->with('success', 'Data latih berhasil dihapus.');
}
}