我必须创建一个应用程序,其中有5种类型的帐户
那么我如何使用Laravel创建这些多个帐户,我应该为每个帐户使用不同的中间件组。另外,我必须为所有人创造特权。
目前,我使用的是每个不同的中间件和会话以及每个DB中的单独表格,但我不这么认为这是一个很好的方法。
使用Laravel创建这些多个帐户的方法是什么。
@Thanks
答案 0 :(得分:1)
除了提供身份验证服务外,Laravel还提供了一种针对给定资源授权用户操作的简单方法。 Laravel对授权的方法很简单,授权操作有两种主要方式:门和政策。有关更多详细信息,请参阅Laravel文档。
答案 1 :(得分:0)
您可以向名为user_type和的用户表添加一列 为每个用户插入十进制值,例如
Super admin = 1;
Inventory admin = 2;
Shop owner = 3;
Shop manager = 4;
User = 5;
并且基于user_type,您可以执行所有操作。
答案 2 :(得分:0)
正如@Fawzan所说,如果您只使用角色(或组),那么只需创建一个组表,然后将每个用户链接到相应的组。然后,您有一个user
表,每个用户都有一个groupID
。
然后,您可以创建一个刀片指令,以帮助您在应用中检查用户是否具有特定角色。 (将其置于AppServiceProvider中)
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];
});