You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel如何获取User表中除第一条管理员记录外的所有用户数据?

问题排查

  • 过滤逻辑不符合需求:现有代码where('id', '!=', auth()->id())的作用是排除当前登录的用户,而非你要求的「User表第一条管理员记录」
  • 传参逻辑错误:你给视图同时传递了两个用户集合:过滤后的$user、全量未过滤的$employees,如果视图渲染时使用的是$employees变量,自然无法实现排除效果

修复方案

场景1:第一条管理员为固定ID=1的记录

public function index()
{
    // 排除ID为1的第一条管理员记录
    $employees = User::where('id', '!=', 1)->get();
    
    return view('admin.payroll', compact('employees'));
}

场景2:第一条管理员为表中身份为管理员的第一条动态记录

假设你用is_admin字段标识管理员身份,代码如下:

public function index()
{
    // 取出第一条管理员的ID
    $firstAdminId = User::where('is_admin', 1)->value('id');
    // 排除第一条管理员后查询所有用户
    $employees = User::where('id', '!=', $firstAdminId)->get();
    
    return view('admin.payroll', compact('employees'));
}

如果你同时需要排除当前登录用户和第一条管理员,叠加查询条件即可:

$employees = User::where('id', '!=', 1)
    ->where('id', '!=', auth()->id())
    ->get();

内容的提问来源于stack exchange,提问作者imane

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 15:15:00