when($request->filled('search'), function (Builder $query) use ($request) { $search = $request->input('search'); $query->whereAny([ 'first_name', 'last_name', 'email', 'mobile', 'id', ], 'LIKE', "%{$search}%"); }) ->when($request->filled('mobile'), function (Builder $query) use ($request) { $query->where('mobile', 'LIKE', '%' . $request->mobile . '%'); }) ->when($request->filled('email'), function (Builder $query) use ($request) { $query->where('email', 'LIKE', '%' . $request->email . '%'); }) ->when($request->filled('from_date'), function (Builder $query) use ($request) { $gregorianFrom = Verta::parse($request->from_date)->formatGregorian('Y-m-d'); $query->whereDate('created_at', '>=', $gregorianFrom); }) ->when($request->filled('to_date'), function (Builder $query) use ($request) { $gregorianTo = Verta::parse($request->to_date)->formatGregorian('Y-m-d'); $query->whereDate('created_at', '<=', $gregorianTo); }) ->when($request->filled('sort'), function (Builder $query) use ($request) { switch ($request->input('sort')) { case 'oldest': $query->orderBy('created_at'); break; case 'name_asc': $query->orderBy('first_name')->orderBy('last_name'); break; case 'name_desc': $query->orderByDesc('first_name')->orderByDesc('last_name'); break; case 'newest': default: $query->orderByDesc('created_at'); break; } }, function (Builder $query) { $query->orderByDesc('created_at'); }) ->paginate(15) ->withQueryString(); return view('admin.users.index', compact('users')); } public function edit(User $user) { return view('admin.users.edit', compact('user')); } public function update(UserUpdateRequest $request, User $user) { $inputs = $request->only([ 'first_name', 'last_name', 'mobile', 'email', ]); if ($request->filled('password')) { $inputs['password'] = Hash::make($request->password); } $user->update($inputs); return redirect() ->route('admin.users.index') ->with('success', 'اطلاعات کاربر با موفقیت ویرایش شد.'); } public function destroy(User $user) { $user->delete(); return redirect() ->route('admin.users.index') ->with('success', 'کاربر با موفقیت حذف شد.'); } }