基于角色的 Laravel 菜单?

标签 laravel laravel-5 laravel-5.5

我有 codeigniter 背景。现在,我正在学习 Laravel。所以,我处于这种情况(示例),我正在尝试创建一个具有多个用户的 web 应用程序。用户类型 A ,他们可以访问菜单 a、菜单 b 和菜单 c,而用户类型 B 他们只能访问菜单 a。

现在,我正在使用 https://github.com/lavary/laravel-menu .好吧,如果它只有两种类型,我可以手动编写它。但是,如果有五种或更多类型的用户呢?

当我使用 codeigniter 时。我创建了 4 个表 Users , UsersType , Menu & MenuAccess .你必须了解它是如何工作的。我只是,用查询播放它然后我展示它。

UsersType (Users) -> TypeId (UsersType) -> MenuId (MenuAccess) -> MenuId (Menu)

我已经使用谷歌,我发现这个 https://github.com/Zizaco/entrust但我可以从那个包裹中看到什么。它只授予操作权限(输入、编辑和删除)

那么,我可以在我的 Laravel 中使用我的 codeigniter 方式吗?保存我的路线属性而不是在我的 rouotes/web.php 中显示它(不知道可不可以,还没试过)。对不起我的英语不好。

最佳答案

我要做的是在 User 类中放置一个函数,该函数检查自己的权限,然后返回一个包含用户有权访问的菜单的 View 。

public function menu()
{
    switch($this->role) {
        case 'admin':
            return view('menus.admin');
        [etc]
    }
}

然后在 View 中检查用户是否登录并显示菜单:
@if Auth::check()
    {{ Auth::user->menu() }}
@endif

关于基于角色的 Laravel 菜单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47123522/

相关文章:

laravel - 如何解决vue js和laravel应用程序中cors允许访问控制

php - Laravel Eloquent 输出数组 Collection 而不是单个值

mysql - SQL/Mysql 查询数据库中可用的日期和时间

php - Laravel 黄昏不工作.env.dusk.local

html - 如何在 Laravel 5.5 中切换到 Bootstrap 4

database - Laravel DB::rollback() 不适用于交易流程

php - 如何在 Laravel 数据库查询中使用按位运算符

laravel - 如何在 Laravel 或 Redis 中取消排队的作业

php - 需要帮助构建 Eloquent 多对多关系(laravel 5.1)

php - Laravel 5.5 验证多文件上传