diff --git a/app/Http/Controllers/Admin/UserManagerController.php b/app/Http/Controllers/Admin/UserManagerController.php index a1f6dad..9c58142 100644 --- a/app/Http/Controllers/Admin/UserManagerController.php +++ b/app/Http/Controllers/Admin/UserManagerController.php @@ -23,7 +23,7 @@ use Illuminate\View\View; class UserManagerController extends Controller { /** - * 显示拥护列表及搜索 + * 显示用户列表及搜索(支持按等级/经验/金币/魅力排序) */ public function index(Request $request): View { @@ -33,13 +33,17 @@ class UserManagerController extends Controller $query->where('username', 'like', '%'.$request->input('username').'%'); } - // 分页获取用户 - $users = $query->orderBy('id', 'desc')->paginate(20); + // 排序:允许的字段白名单,防止 SQL 注入 + $sortable = ['user_level', 'exp_num', 'jjb', 'meili', 'id']; + $sortBy = in_array($request->input('sort_by'), $sortable) ? $request->input('sort_by') : 'id'; + $sortDir = $request->input('sort_dir') === 'asc' ? 'asc' : 'desc'; + + $users = $query->orderBy($sortBy, $sortDir)->paginate(20)->withQueryString(); // VIP 等级选项列表(供编辑弹窗使用) $vipLevels = \App\Models\VipLevel::orderBy('sort_order')->get(); - return view('admin.users.index', compact('users', 'vipLevels')); + return view('admin.users.index', compact('users', 'vipLevels', 'sortBy', 'sortDir')); } /** diff --git a/resources/views/admin/users/index.blade.php b/resources/views/admin/users/index.blade.php index b714046..5e472b8 100644 --- a/resources/views/admin/users/index.blade.php +++ b/resources/views/admin/users/index.blade.php @@ -22,6 +22,22 @@
| 注册名 | 性别 | -等级 | -经验 | ++ + 等级{{ $arrow('user_level') }} + + | ++ + 经验{{ $arrow('exp_num') }} + + | ++ + 金币{{ $arrow('jjb') }} + + | ++ + 魅力{{ $arrow('meili') }} + + | 注册时间 | 管理操作 | {{ number_format($user->exp_num ?? 0) }} | ++ {{ number_format($user->jjb ?? 0) }} + | ++ {{ number_format($user->meili ?? 0) }} + | {{ $user->created_at->format('Y/m/d H:i') }} |
|---|