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 @@
+ @php + /** + * 生成排序链接:点击同一列切换方向,点击新列默认倒序 + */ + $sortLink = function (string $col) use ($sortBy, $sortDir, $request): string { + $newDir = $sortBy === $col && $sortDir === 'desc' ? 'asc' : 'desc'; + $qs = http_build_query( + array_merge($request->except(['sort_by', 'sort_dir', 'page']), [ + 'sort_by' => $col, + 'sort_dir' => $newDir, + ]), + ); + return url('/admin/users?' . $qs); + }; + $arrow = fn(string $col): string => $sortBy === $col ? ($sortDir === 'desc' ? ' ↓' : ' ↑') : ''; + @endphp ID - - + + + + @@ -60,6 +94,12 @@ + +
注册名 性别等级经验 + + 等级{{ $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') }}