我正在laravel 5中实现用户角色,我想根据用户权限更新导航栏。默认导航栏具有A,B和C菜单,可重定向到特定页面。让我们说用户1可以查看页面A和B,而用户2只能查看C.当用户1登录时,我希望导航栏只显示A和B菜单。我想在一个页面中执行此操作,并且不想为每个用户角色创建一个母版页(如我所建议的那样)。任何帮助或提示都表示赞赏。
答案 0 :(得分:1)
首先,您需要解释如何在系统中设置角色。因此,请考虑以下示例有一些假设...
例如,如果您的User
模型与Roles
模型有关系,请执行以下操作:
public function roles()
{
return $this->belongsToMany('\App\Role');
}
然后,您可以向User模型添加一个方法,以检查用户是否具有某个角色:
public function hasRole($name)
{
foreach ($this->roles as $role)
{
if ($role->name == $name) return true;
}
return false;
}
然后,您可以在导航视图中执行此类操作(使用刀片)
@if (Auth::user()->hasRole('admin'))
<!-- nav links here -->
@endif