ajax()) { $data = User::select('*')->whereIn('level', [1,2])->orderBy('created_at', 'desc'); // Convert the Eloquent Collection to a regular PHP array $data->each(function ($item, $key) { $item->rowIndex = $key + 1; }); return Datatables::eloquent($data) ->addIndexColumn() ->addColumn('title-post', function($row) { return '
' . $row->name . '
'; }) ->addColumn('action', function($row){ $view = route('users.show', ['id' => $row->id]); $edit = route('users.edit', ['id' => $row->id]); $delete = route('users.delete', ['id' => $row->id]); $btn = ' '; return $btn; }) ->rawColumns(['title-post','action']) ->filter(function ($query) use ($request) { if ($request->has('search')) { $search = $request->get('search')['value']; $query->where('name', 'LIKE', "%$search%") ->orWhere('email', 'LIKE', "%$search%"); } }) ->make(true); } $data = [ 'subtitle' => 'Users', 'button' => true, 'module' => [ 'url' => route('users.create'), 'name' => 'Tambah Baru' ] ]; return view('admin.app.users.index', compact('data')); } public function create() { $data = [ 'subtitle' => 'Create New' ]; $roles = Roles::whereIn('id', [1,2])->get(); return view('admin.app.users.add', compact('data', 'roles')); } public function store(Request $request) { $validator = Validator::make($request->all(), [ 'name' => 'required', 'email' => 'required|email', 'level' => 'required', ]); if ($validator->fails()) { return redirect()->back()->with('error', 'Terdapat input yang belum diisi')->withInput(); } $input = $request->all(); $foto_namaBaru = null; if ($request->hasFile('image') && $request->file('image')->isValid()) { $foto_namaBaru = $request->file('image')->store('public/images'); } $post = new User([ 'name' => $input['name'], 'username' => Str::before($input['email'], '@') . rand(100, 999), 'email' => $input['email'], 'password' => !empty(bcrypt($input['password'])) ? bcrypt($input['password']) : bcrypt('default123'), 'level' => $input['level'], ]); $check = User::where('email', $input['email'])->count(); if ($check == 0) { if ($post->save()) { return redirect()->route('users')->with('success', 'Berhasil menambah akun!'); } else { return redirect()->route('users')->with('error', 'Terjadi kesalahan'); } } else { return redirect()->route('users')->with('error', 'Data telah ada!'); } } public function show($id) { $data = [ 'subtitle' => User::where('id', $id)->first()->email, 'records' => User::where('id', $id)->first(), 'logs' => User::where('id', $id)->first() ]; return view('admin.app.users.detail', compact('data')); } public function edit($id) { $data = [ 'subtitle' => User::where('id', $id)->first()->email, 'records' => User::where('id', $id)->first() ]; $roles = Roles::whereIn('id', [1,2])->get(); return view('admin.app.users.edit', compact('data', 'id', 'roles')); } public function update(Request $request, $id) { $validator = Validator::make($request->all(), [ 'name' => 'required', 'email' => 'required|email', 'level' => 'required', ]); if ($validator->fails()) { return redirect()->back()->with('error', 'Terdapat input yang belum diisi')->withInput(); } // Cari data berdasarkan ID $user = User::find($id); // Jika data ditemukan if ($user) { // Jika ada file baru yang diunggah, hapus file thumbnail yang lama if ($request->hasFile('image') && $request->file('image')->isValid()) { if ($user->thumbnail) { Storage::delete($user->thumbnail); } } // Update data dengan data baru dari form yang telah dibersihkan $user->name = $request->input('name'); $user->email = $request->input('email'); !empty($request->input('password')) ? $user->password = bcrypt($request->input('password')) : $user->password; $user->level = $request->input('level'); $user->username = Str::before($user->email, '@') . rand(100, 999); // Simpan perubahan pada database $user->save(); return redirect()->route('users')->with('success', 'Berhasil diubah!!'); } else { return redirect()->route('users')->with('error', 'Terjadi kesalahan'); } } public function destroy($id) { $user = User::find($id); // Jika data ditemukan if ($user) { // Hapus data dari database $user->delete(); return redirect()->route('users')->with('success', 'Berhasil dihapus akun!'); } else { return redirect()->route('users')->with('error', 'Terjadi kesalahan'); } } }