MIF_E31221225/app/Http/Controllers/Guru/PelajaranController.php

52 lines
2.1 KiB
PHP

<?php
namespace App\Http\Controllers\Guru;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Auth; // Not explicitly used but fine to keep
use App\Models\GuruMapel;
use App\Models\TahunAjaran;
use App\Models\Guru;
use App\Models\Kelas; // Tambahkan ini jika Anda punya model Kelas
class PelajaranController extends Controller
{
public function index()
{
$userId = auth()->id();
$guru = Guru::where('user_id', $userId)->firstOrFail();
$tahunAjaranAktif = TahunAjaran::where('status', 'aktif')->firstOrFail();
$kelasId = request()->get('kelas_id'); // ambil filter dari form (opsional)
// Ambil semua kelas yang pernah diajar oleh guru untuk tahun ajaran aktif
// Ini sudah benar, asalkan model GuruMapel punya relasi 'kelas'
$semuaKelas = GuruMapel::where('guru_id', $guru->id)
->where('tahun_ajaran_id', $tahunAjaranAktif->id)
->with('kelas') // Memuat data kelas yang terkait langsung dengan guru_mapel
->get()
->pluck('kelas')
->unique('id')
->sortBy('nama_kelas');
$query = GuruMapel::where('guru_id', $guru->id)
->where('tahun_ajaran_id', $tahunAjaranAktif->id)
->with('mapel'); // HANYA memuat relasi 'mapel', HAPUS 'kelasMapel' yang bermasalah
// Jika Anda perlu memuat data kelas juga bersama dengan mapel,
// dan Anda tidak lagi menggunakan 'kelasMapel' sebagai pivot,
// pastikan relasi 'kelas' juga ada di model GuruMapel
// $query = GuruMapel::where('guru_id', $guru->id)
// ->where('tahun_ajaran_id', $tahunAjaranAktif->id)
// ->with(['mapel', 'kelas']); // Gunakan relasi 'kelas' langsung dari GuruMapel
if ($kelasId) {
$query->where('kelas_id', $kelasId);
}
// Pastikan Anda ingin unique per mapel_id saja, dan bukan per kombinasi mapel-kelas
$mapelYangDiampu = $query->get()->unique('mapel_id')->values();
return view('guru.pelajaran.index', compact('mapelYangDiampu', 'semuaKelas', 'kelasId'));
}
}