user(); // Ambil mengajar dengan relasi mapel & kelas // Group by id_mapel agar tidak duplikat jika guru ajar mapel sama di kelas berbeda $mengajars = Mengajar::with(['mapel', 'kelas']) ->where('id_guru', $guru->id_guru) ->get() ->groupBy('id_mapel'); // group by mapel return view('guru.mapel.index', compact('mengajars')); } /** * Simpan materi baru */ public function storeMateri(Request $request) { $guru = Auth::guard('guru')->user(); $request->validate([ 'id_mengajar' => 'required|exists:mengajars,id_mengajar', 'judul_materi' => 'required|string|max:200', 'deskripsi' => 'nullable|string', 'lampiran_materi' => 'nullable|file|mimes:pdf,doc,docx,jpg,jpeg,png,ppt,pptx|max:10240', ], [ 'lampiran_materi.mimes' => 'Format file: pdf, doc, docx, jpg, png, ppt, pptx.', 'lampiran_materi.max' => 'Ukuran file maksimal 10MB.', ]); // Pastikan mengajar ini milik guru yang login $mengajar = Mengajar::where('id_mengajar', $request->id_mengajar) ->where('id_guru', $guru->id_guru) ->firstOrFail(); $path = null; if ($request->hasFile('lampiran_materi')) { $file = $request->file('lampiran_materi'); $filename = 'materi_' . $guru->id_guru . '_' . time() . '.' . $file->getClientOriginalExtension(); $path = $file->storeAs('materi', $filename, 'public'); } Materi::create([ 'id_mengajar' => $request->id_mengajar, 'judul_materi' => $request->judul_materi, 'deskripsi' => $request->deskripsi, 'lampiran_materi' => $path, ]); return redirect()->route('guru.mapel.index') ->with('success', 'Materi berhasil diupload!'); } /** * Simpan tugas baru */ public function storeTugas(Request $request) { $guru = Auth::guard('guru')->user(); $request->validate([ 'id_mengajar' => 'required|exists:mengajars,id_mengajar', 'judul_tugas' => 'required|string|max:200', 'keterangan' => 'nullable|string', 'deadline' => 'required|date|after:now', ], [ 'deadline.after' => 'Deadline harus lebih dari waktu sekarang.', ]); // Pastikan mengajar ini milik guru yang login $mengajar = Mengajar::where('id_mengajar', $request->id_mengajar) ->where('id_guru', $guru->id_guru) ->firstOrFail(); Tugas::create([ 'id_mengajar' => $request->id_mengajar, 'judul_tugas' => $request->judul_tugas, 'keterangan' => $request->keterangan, 'deadline' => $request->deadline, ]); return redirect()->route('guru.mapel.index') ->with('success', 'Tugas berhasil dibuat!'); } }