get(); // Ambil daftar user untuk form tambah pembelajaran $users = \App\Models\User::all(); $users = \App\Models\User::with('student')->get(); return view('admin.pembelajaran.index', compact('pembelajarans', 'users')); } public function store(Request $request) { $request->validate([ 'judul' => 'required|string|max:255', 'deskripsi' => 'required|string', 'video' => 'nullable|file|mimes:mp4,mov,avi|max:20480', 'audio' => 'nullable|file|mimes:mp3,wav|max:10240', 'bacaan' => 'nullable|string', 'user_ids' => 'required|array', 'user_ids.*' => 'exists:users,id', ]); // Handle file video $namaVideo = null; if ($request->hasFile('video')) { if (!file_exists(public_path('video'))) { mkdir(public_path('video'), 0777, true); } $namaVideo = time() . '_' . $request->file('video')->getClientOriginalName(); $request->file('video')->move(public_path('video'), $namaVideo); } // Handle file audio jika ada $namaAudio = null; if ($request->hasFile('audio')) { if (!file_exists(public_path('audio'))) { mkdir(public_path('audio'), 0777, true); } $namaAudio = time() . '_' . $request->file('audio')->getClientOriginalName(); $request->file('audio')->move(public_path('audio'), $namaAudio); } // Simpan pembelajaran $pembelajaran = Pembelajaran::create([ 'user_id' => Auth::id(), 'judul' => $request->judul, 'deskripsi' => $request->deskripsi, 'video' => $namaVideo, 'audio' => $namaAudio, 'bacaan' => $request->bacaan, ]); // Attach ke pivot table pembelajaran_user $pembelajaran->users()->attach($request->user_ids); return redirect()->back()->with('success', 'Pembelajaran berhasil disimpan dan dikirim ke murid!'); } public function destroy(Pembelajaran $pembelajaran) { // Pastikan hanya pemilik pembelajaran yang dapat menghapus if ($pembelajaran->user_id !== Auth::id()) { return redirect()->route('pembelajaran.index')->with('error', 'Anda tidak memiliki izin untuk menghapus pembelajaran ini.'); } $pembelajaran->delete(); return redirect()->route('pembelajaran.index')->with('success', 'Pembelajaran berhasil dihapus.'); } }