我有两张表:Role
和User
id
name
email
password
Roleid
id
name
我想要获取当前登录Role
的{{1}}名称。像User
答案 0 :(得分:3)
基于您定义角色和用户表之间的正确关系,您应该执行以下操作:
$user = auth()->user();
$role = $user->role->name // Name of relation function in user model and gather all role data
如果你没有在用户和角色之间定义正确的关系,你必须做这样的事情:
users表中的定义了一个名为:role_id
的列并在用户模型中执行:
public function role() {
return $this->belongsTo(Role::class, 'role_id');
}
并在角色模型中:
public function users() {
return $this->HasMany(User::class);
}
答案 1 :(得分:0)
这是用户模型
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'username','name', 'email', 'password','loc_id','role_id','status'
];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'password', 'remember_token',
];
public function role() {
return $this->belongsTo('App\role', 'role_id');
}
}
这是榜样
protected $table="role";
protected $fillable=['rolename',];
public function user() {
return $this->HasMany('App\User');
}
这两个表有一对多的关系。每个用户都有一个roleid,使用此角色id希望通过使用roleid(forgein key)从角色表中获取当前登录用户角色名的名称 {{验证::用户() - >作用() - >角色名}} 我使用它来获取角色名称,但收到错误。
未定义属性:Illuminate \ Database \ Eloquent \ Relations \ BelongsTo :: $ rolename
答案 2 :(得分:0)
如果您只想使用此用户ID,请使用此方式。
$user_id = Auth::id();
否则需要特殊价值,
$user_email = Auth::user()->email;
答案 3 :(得分:0)
请这样写:
{{Auth::user()->role->rolename}}
不要添加()
角色