ajax()) { $data = Jadwal::select('*'); return Datatables::of($data) ->addIndexColumn() ->addColumn('title-post', function($row){ $text = '

' . $row->name . '

Terakhir diperbarui pada ' . date_formatting(Carbon::parse($row->updated_at, 'Y-m-d'), 'timeago') . '

'; return $text; }) ->addColumn('kelas', function($row){ return $row->kelas->name; }) ->addColumn('guru', function($row){ return $row->guru->user->name; }) ->addColumn('is_status', function($row){ if ($row->status == 1) { return 'Aktif'; } else { return 'Tidak'; } }) ->rawColumns(['title-post', 'kelas', 'guru', 'is_status']) ->make(true); } $data = [ 'subtitle' => 'Jadwal', 'button' => true, 'module' => [ 'url' => app_url('jadwal/create'), 'name' => 'Tambah baru' ] ]; return view('admin.app.content.jadwal.index', compact('data')); } public function create() { $data = [ 'subtitle' => 'Tambah baru', ]; return view('admin.app.content.jadwal.add', compact('data')); } public function store(Request $request) { $validator = Validator::make($request->all(), [ 'id_guru' => 'required', 'id_kelas' => 'required', 'day' => 'required', 'name' => 'required', 'start_time' => 'required', 'end_time' => 'required', 'status' => 'required', ]); if ($validator->fails()) { return redirect()->back()->with('error', 'Unexpected error, please try again')->withInput(); } $input = $request->all(); $post = new Jadwal([ 'id_guru' => $input['id_guru'], 'id_kelas' => $input['id_kelas'], 'day' => $input['day'], 'name' => $input['name'], 'start_time' => $input['start_time'], 'end_time' => $input['end_time'], 'status' => $input['status'], ]); $check = Jadwal::where('day', $input['day'])->where('name', $input['name'])->where('id_guru', $input['id_guru'])->count(); if ($check == 0) { if ($post->save()) { return redirect()->route('jadwal')->with('success', 'You have successfully added data'); } else { return redirect()->route('jadwal')->with('error', 'Unexpected error, please try again'); } } else { return redirect()->route('jadwal')->with('error', 'Data already exists'); } } public function edit($id) { $data = [ 'subtitle' => 'Edit: ' . Jadwal::where('id', $id)->first()->name, 'records' => Jadwal::where('id', $id)->first(), ]; $jadwal = Jadwal::find($id); return view('admin.app.content.jadwal.edit', compact('data','jadwal', 'id')); } public function update(Request $request, $id) { // Validasi input sebelum memperbarui data $validator = Validator::make($request->all(), [ 'id_guru' => 'required', 'id_kelas' => 'required', 'day' => 'required', 'name' => 'required', 'start_time' => 'required', 'end_time' => 'required', 'status' => 'required', ]); if ($validator->fails()) { return redirect()->back()->withInput()->with('error', 'Unexpected error, please try again'); } // Cari data berdasarkan ID $post = Jadwal::find($id); // Jika data ditemukan if ($post) { // Update data dengan data baru dari form yang telah dibersihkan $post->update($request->all()); // Simpan perubahan pada database $post->save(); return redirect()->route('jadwal')->with('success', 'You are successfully modify data'); } else { return redirect()->route('jadwal')->with('error', 'Data not found'); } } public function destroy($id) { // Cari data berdasarkan ID $post = Jadwal::find($id); // Jika data ditemukan if ($post) { // Hapus data dari database $post->delete(); return redirect()->route('jadwal')->with('success', 'You are successfully deleted records'); } else { return redirect()->route('jadwal')->with('error', 'Data not found'); } } }