我在laravel 5.2上使用委托我的角色和权限,我在我的控制器上有这个:
$user = Auth::user();
$rol = $user->roles;
dd($rol);
在我的用户模型中:
public function roles(){
return $this->belongsToMany('Nini\Role','role_user');
}
得到这个:Snapshot
我尝试访问并显示" display_name"在我看来,我无法帮助! 提前谢谢。
答案 0 :(得分:0)
正如您在User模型中定义的那样,用户可以拥有多个角色(这意味着用户拥有一组角色),因此您必须定义要显示display_name属性的角色。我想为用户显示所有可用角色的display_name属性,这可以通过以下方式实现:
@foreach (Auth::user()->roles as $rol)
$rol->display_name
@endforeach
我希望有助于消除您的疑虑。
答案 1 :(得分:0)
要查看控制器使用$user = Auth::user()->with('roles')
使用dd($rol->toArray())
进行检查数据收集,
答案 2 :(得分:0)
答案 3 :(得分:0)
我认为 Laravel's Entrust 库在用户和角色之间存在多对多的关系。 因此,如果您想在视图中显示显示名称,您需要从调用方法 roles()中获取集合中的项目/对象 你可以这样做:
<img src="<YOUR_URL>/my_logo.gif"....
或者如果你想获取第一个rle,你可以使用
// Collection of Roles
$user_roles = $user->roles;
foreach($user_roles as $user_role) {
echo $user_role->display_name;
}
我希望这可以帮到你!