Php Laravel-如何创建多个用户角色并为其分配权限?

Php Laravel-如何创建多个用户角色并为其分配权限?,php,mysql,laravel-5,laravel-5.3,Php,Mysql,Laravel 5,Laravel 5.3,我必须创建一个应用程序,其中有5种类型的帐户 超级管理员 库存管理员 店主 商店经理 使用者 那么,我如何使用Laravel创建这些多个帐户呢?我应该为每个帐户使用不同的中间件组吗。此外,我必须为所有人创建特权 目前,我正在为每个应用程序使用不同的中间件和会话,并在DB中为每个应用程序使用单独的表,但我认为这不是一个好方法 使用Laravel创建这些多个帐户的方法是什么 @谢谢您可以在用户表中添加一个名为user\u type和 例如,为每个用户插入十进制值 Super admin = 1;

我必须创建一个应用程序,其中有5种类型的帐户

  • 超级管理员
  • 库存管理员
  • 店主
  • 商店经理
  • 使用者
那么,我如何使用Laravel创建这些多个帐户呢?我应该为每个帐户使用不同的中间件组吗。此外,我必须为所有人创建特权

目前,我正在为每个应用程序使用不同的中间件和会话,并在DB中为每个应用程序使用单独的表,但我认为这不是一个好方法

使用Laravel创建这些多个帐户的方法是什么


@谢谢

您可以在用户表中添加一个名为user\u type和 例如,为每个用户插入十进制值

Super admin = 1; 
Inventory admin = 2; 
Shop owner  = 3; 
Shop manager = 4; 
User = 5;

根据用户类型,您可以执行所有操作

正如@Fawzan所说,如果您只处理角色(或组),那么只需创建一个组表,然后将每个用户链接到相应的组。然后,您有一个
user
表,每个用户都有一个
groupID

然后,您可以创建一个刀片指令,以帮助您在应用程序中检查用户是否具有特定角色。(将其放在AppServiceProvider中)


除了提供身份验证服务外,Laravel还提供了一种简单的方法来授权用户对给定资源的操作。Laravel的授权方法很简单,授权行动有两种主要方式:大门和政策。有关更多详细信息,请参阅Laravel文档


创建一个groups表并将用户分配到不同的组如何?
Blade::directive('hasRole', function ($role) {
    return auth()->user()->role->name = $role;
});

// Or a little more performant if you call the directive many times.

$roles = Role::all()->pluck('id', 'name')->toArray();
Blade::directive('hasRole', function ($role) use ($roles) {
    return auth()->user()->roleID == $roles[$role];
});