2015-06-08 2 views
0

Я реализую роли пользователя в laravel 5, и я хочу обновить navbar в соответствии с разрешениями пользователя. Навигационная панель по умолчанию имеет меню A, B и C, которые перенаправляются на определенные страницы. Предположим, что пользователь 1 может просматривать страницы A и B, в то время как пользователь 2 может просматривать только C. Когда пользователь 1 входит в систему, я хочу, чтобы навигатор отображал только меню A и B. Я хочу сделать это на одной странице и не хочу создавать главную страницу для каждой роли пользователя (как мне было предложено). Любая помощь или намек оцениваются.отображение navbar в соответствии с ролями пользователей и разрешениями laravel

ответ

1

Во-первых, вам нужно объяснить, как ваши роли настроены в вашей системе. Таким образом, считаю, что в следующем примере есть некоторые предположения ...

Если, например, ваша User модели имеет отношение к Roles модели, а так:

public function roles() 
{ 
    return $this->belongsToMany('\App\Role'); 
} 

Вы можете добавить метод в модель пользователя чтобы проверить, если пользователь имеет определенную роль:

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 
Смежные вопросы