when($request->filled('search'), function (Builder $query) use ($request) { $search = $request->input('search'); $query->whereAny([ 'first_name', 'last_name', 'mobile', 'email' ], 'LIKE', "%$search%"); }) ->when($request->filled('sort'), function (Builder $query) use ($request) { $sort = $request->input('sort'); switch ($sort) { case 'name_asc': { $query ->orderBy('first_name') ->orderBy('last_name'); break; } case 'name_desc': { $query ->orderByDesc('first_name') ->orderByDesc('last_name'); break; } default: { $query ->orderByDesc('created_at'); } } }) ->paginate(4); return view('admin.users.index', compact('title', 'users')); } public function show(User $user) { $title = 'جزئیات کاربر'; return view('admin.users.show', compact('title', 'user' )); } public function edit(User $user) { $title = 'ویرایش کاربر'; return view('admin.users.edit', compact('title', 'user')); } public function update(UserUpdateRequest $request, User $user) { $inputs = $request->only([ 'first_name', 'last_name', 'email', 'mobile' ]); if ($request->filled('password')) { $inputs['password'] = Hash::make($request->input('password')); } $user->update($inputs); return redirect()->back()->with('success', 'ویرایش کاربر با موفقیت انجام شد'); } public function trash(Request $request) { $title = 'سطل زباله کاربران'; $users = User::onlyTrashed() ->paginate(15); return view('admin.users.trash', compact('users')); } public function destroy(User $user) { $user->delete(); return back()->with('success', 'کاربر با موفقیت غیرفعال شد.'); } public function restore($id) { $user = User::onlyTrashed()->findOrFail($id); $user->restore(); return back()->with('success', 'کاربر با موفقیت بازگردانی شد.'); } public function forceDelete($id) { $user = User::onlyTrashed()->findOrFail($id); $user->forceDelete(); return back()->with('success', 'کاربر برای همیشه حذف شد.'); } }