public function save(Request $request) { $validation = ['id_guru' => 'required|exists:guru,id', 'id_kelas' => 'required|exists:kelas,id', 'id_mapel' => 'required|exists:mapel,id']; $this->validate($request, $validation); if (Mapel::find($request->input('id_mapel'))->kelompok == "WK") { $c = Mengajar::join('mapel', 'mengajar.id_mapel', '=', 'mapel.id')->where('mengajar.id_kelas', $request->input('id_kelas'))->where('mapel.kelompok', 'WK')->where('mengajar.id_semester', Semester::get_active_semester()->id)->first(); if ($c) { return response("Kelas ini sudah memiliki wali kelas (" . $c->guru_link->nama . ").", 422); } } $new = new Mengajar(); $new->id_guru = $request->input('id_guru'); $new->id_kelas = $request->input('id_kelas'); $new->id_mapel = $request->input('id_mapel'); $new->id_semester = Semester::get_active_semester()->id; try { $save = $new->save(); } catch (\Illuminate\Database\QueryException $e) { return response('Operasi gagal. Coba cek kembali, mungkin ada kesalahan atau data yang ingin ditambahkan sudah ada.', 422); } return "Asosiasi pengajaran baru berhasil ditambahkan."; }