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

在Laravel用户列表中如何通过role_id显示对应角色名称

第一步:修正模型关联定义

你当前的两个模型关联对象配置完全错误,先做如下调整:

User 模型修改

删除原有错误的roles方法,替换为以下代码:

public function role()
{
    // 第一个参数为关联的目标角色模型,第二个参数为users表的外键字段名role_id
    return $this->belongsTo(Role::class, 'role_id');
}

Role 模型修改

删除原有错误的users方法,替换为以下代码:

public function users()
{
    // 第一个参数为关联的目标用户模型,第二个参数为users表的外键字段名role_id
    return $this->hasMany(User::class, 'role_id');
}

第二步:控制器查询预加载关联(性能优化,非强制但强烈建议)

找到输出用户列表的控制器方法,查询用户时加入关联预加载,避免N+1查询问题:

// 原有查询如果是 User::all() 替换为下方代码
$users = User::with('role')->get();

第三步:修改Blade模板显示角色名称

把模板中原有展示role_id的行替换为角色名,新增空值判断避免用户无关联角色时报错:

{{-- 原有代码 <td>{{$user->role_id}}</td> 替换为 --}}
<td>{{ $user->role->name ?? '无对应角色' }}</td>

注意:如果你的角色表存储角色名称的字段不是name,请自行替换为实际字段名(例如title、role_name等)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 10:36:02