laravel entrust 权限管理

本文介绍使用 Laravel 框架的 Entrust 扩展实现权限管理的方法,包括用户、角色与权限的创建及关联过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在用laravel做权限管理,用的是entrust扩展,所以总结了一下用法.我是根据自己的思路理解的ertrust来写的,当然可以根据自己的需求去做

创建用户

 

DB::table('users')->insert(
                [
                    'name' => 'admin',
                    'email' => 'admin@qq.com',
                    'mobile' => '10136989522',
                    'password' => bcrypt('123456'),
                    'sex'=>'男',
                    'birthday'=>'2000-01-20',
                    'address_province'=>'北京市',
                    'address_city'=>'北京市',
                    'address_district'=>'朝阳区',
                    'active' => true,
                    'created_at' => new \DateTime(),
        ]);

 

 

 

 

 

创建超级管理员角色

 

$SuperAdmin = new Role();
$SuperAdmin->name = 'SuperAdmin';
$SuperAdmin->display_name = '超级管理员';
$SuperAdmin->description = '网站最高权利者.管理网站用户和员工,及进行系统设置,网站维护';
$SuperAdmin->save();

 

创建后台管理员角色

$admin = new Role();
$admin->name = 'admin';
$admin->display_name = '登录后台';
$admin->description = '只能登录后台';
$admin->save();

 

创建用户管理权限及二级添加用户权限

 

$user= new Permission();
$user->name = 'user';
$user->display_name = '用户管理权限';
$user->description = '后台用户管理所有权限';
$user->fid = 0;
$user->save();

 

 

$adduser= new Permission();
$adduser->name = 'adduser';
$adduser->display_name = '添加用户权限';
$adduser->description = '后台添加用户权限';
$adduser->fid = $user->id;
$adduser->save();

 

给用户添加角色

 

$adminUser = User::where('name', 'admin')->first();
//赋予所有的角色
$adminRoles  = Role::select('id')->get()->toArray();
$adminUser->attachRoles($adminRoles);
//赋予单一的角色
$adminRole  = Role::where('name','admin')->get();
$adminUser->attachRoles($adminRole);

 

删除用户角色

 

$user = User::find($id);
$user->detachRoles();//删除所有角色
$user->attachRoles($roles);//赋予新的角色

给角色添加权限

 

 

$owner = Role::where('name','SuperAdmin')->first();
//添加所有的权限
$createPost  = Permission::select('id')->get()->toArray();
$owner->attachPermissions($createPost);
//添加单一的权限
$createPost  = Permission::where('name','admin')->first();
$owner->attachPermission($createPost);

删除角色的权限

 

 

$role=Role::find('id');
$oldPermissions=$role->getPermissionIds();
$role->detachPermissions($oldPermissions);



 

 


 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值