修复 N + 1 的问题

This commit is contained in:
iVampireSP.com 2023-01-29 03:11:28 +08:00
parent 6a6eeed152
commit 60cb2cd75b
No known key found for this signature in database
GPG Key ID: 2F7B001CA27A8132
4 changed files with 30 additions and 30 deletions

View File

@ -20,12 +20,12 @@ class HostController extends Controller
*/ */
public function index(Request $request): View public function index(Request $request): View
{ {
$hosts = new Host(); $hosts = new Host;
// 遍历所有的搜索条件 // 遍历所有的搜索条件
foreach (['name', 'module_id', 'status', 'user_id', 'price', 'managed_price', 'created_at', 'updated_at'] as $field) { foreach (['name', 'module_id', 'status', 'user_id', 'price', 'managed_price', 'created_at', 'updated_at'] as $field) {
if ($request->has($field)) { if ($request->has($field)) {
$hosts->where($field, 'like', '%' . $request->input($field) . '%'); $hosts = $hosts->where($field, 'like', '%' . $request->input($field) . '%');
} }
} }

View File

@ -22,35 +22,35 @@ class UserController extends Controller
*/ */
public function index(Request $request): View public function index(Request $request): View
{ {
$users = new User(); $users = (new User())->with('user_group')->paginate(50)->withQueryString();
$users = $users->with('user_group'); // $users = $users->with('user_group');
if ($request->filled('id')) { // if ($request->filled('id')) {
$users = $users->where('id', $request->input('id')); // $users = $users->where('id', $request->input('id'));
} // }
//
// if ($request->filled('name')) {
// $users = $users->where('name', 'like', '%' . $request->input('name') . '%');
// }
//
// if ($request->filled('email')) {
// $users = $users->where('email', 'like', '%' . $request->input('email') . '%');
// }
//
// if ($request->filled('real_name')) {
// $users = $users->where('real_name', 'like', '%' . $request->input('real_name') . '%');
// }
//
// if ($request->has('banned_at')) {
// $users = $users->whereNotNull('banned_at');
// }
//
// if ($request->has('real_name_verified_at')) {
// $users = $users->whereNotNull('real_name_verified_at');
// }
if ($request->filled('name')) { // $users = $users->paginate(50)->withQueryString();
$users = $users->where('name', 'like', '%' . $request->input('name') . '%');
}
if ($request->filled('email')) {
$users = $users->where('email', 'like', '%' . $request->input('email') . '%');
}
if ($request->filled('real_name')) {
$users = $users->where('real_name', 'like', '%' . $request->input('real_name') . '%');
}
if ($request->has('banned_at')) {
$users = $users->whereNotNull('banned_at');
}
if ($request->has('real_name_verified_at')) {
$users = $users->whereNotNull('real_name_verified_at');
}
$users = $users->paginate(50)->withQueryString();
return view('admin.users.index', compact('users')); return view('admin.users.index', compact('users'));
} }

View File

@ -143,7 +143,7 @@ public function user_group(): BelongsTo
return $this->belongsTo(UserGroup::class); return $this->belongsTo(UserGroup::class);
} }
public function scopeBirthday() public function scopeBirthday(): User
{ {
/** @noinspection PhpUndefinedMethodInspection */ /** @noinspection PhpUndefinedMethodInspection */
return $this->select(['id', 'name', 'birthday_at', 'email_md5', 'created_at'])->whereMonth('birthday_at', now()->month) return $this->select(['id', 'name', 'birthday_at', 'email_md5', 'created_at'])->whereMonth('birthday_at', now()->month)

View File

@ -99,7 +99,7 @@
</a> </a>
<ul class="dropdown-menu" aria-labelledby="navbarDropdownSupport"> <ul class="dropdown-menu" aria-labelledby="navbarDropdownSupport">
<li> <li>
<a class="dropdown-item" href="{{ route('admin.transactions') }}">管理员</a> <a class="dropdown-item" href="{{ route('admin.admins.index') }}">管理员</a>
</li> </li>
<li> <li>