отображение navbar в соответствии с ролями пользователей и разрешениями laravel

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

0

Решение

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

Если, например, ваш 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
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]