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')); } }