Laravel角色和权限
我是Laravel的新手,我正在尝试基于角色构建应用程序,但在我的情况下,用户只能有一个角色(用户和角色之间没有透视表),我们可以创建我们喜欢的新角色(为一个角色分配多个权限)。有什么帮助吗?非常感谢所以这里有一种方法我会这么做 您需要两张桌子:Laravel角色和权限,laravel,Laravel,我是Laravel的新手,我正在尝试基于角色构建应用程序,但在我的情况下,用户只能有一个角色(用户和角色之间没有透视表),我们可以创建我们喜欢的新角色(为一个角色分配多个权限)。有什么帮助吗?非常感谢所以这里有一种方法我会这么做 您需要两张桌子: 一个我称之为“排名”的表格,里面可以有关于排名本身的所有信息: 当然,它的id也是: 是行政级别吗?(所有权限) 它叫什么名字 一个我称之为“等级能力”的表格,在里面你可以了解等级的所有功能 因此,它将有三列:id、rank_id和能力名称 您需要
- 一个我称之为“排名”的表格,里面可以有关于排名本身的所有信息:
当然,它的id也是:
是行政级别吗?(所有权限)
它叫什么名字 - 一个我称之为“等级能力”的表格,在里面你可以了解等级的所有功能
因此,它将有三列:id、rank_id和能力名称
- 使用者
- 等级
- 可分级性
public function update(User $user, Post $post)
{
return $user->hasPermission('post.update'); // You can also add other permissions for example if the post belongs to your user I'd add || $post->user_id == $user->id
}
我会做那样的事
然后,您必须创建hasPermission方法
因此,在您的用户模型中,您可以放置如下内容:
public function hasPermission($permission){
if(!$this->relationLoaded('rank')){
$this->load('rank', 'rank.ranks_abilities');
}
if(!$this->rank){
return false;// If the user has no rank, return false
}
foreach($this->rank->rank_abilities as $ability){
if($permission === $ability->name){
return true;// If the user has the permission
}
}
return false;
}
在这里,方法完成了
最后一步,您可以使用这里列出的所有方法来避免用户做他不能做的事情
就我个人而言,我会做一个FormRequest,并用它来处理授权()
我希望澄清一下,如果您对设置自定义用户角色和权限还有任何疑问,请继续,您可以尝试
这是一本关于如何在Laravel项目中设置角色和权限的完整指南。err,您尝试了什么。。?还有,有什么反对使用软件包的理由吗?如果你不介意,你可以从现有的软件包中学习。。。