Laravel随笔 Laravel-Permission使用

官方文档
参考文章

  1. 使模型拥有所有权限操作方法
use Spatie\Permission\Traits\HasRoles;

class User extends Authenticatable
{
    use HasRoles;
    ...
}
  1. 各个表关联关系
    在这里插入图片描述
    其中,model_id相当于user_id,model_has_roles表示用户所拥有的角色。

  2. 在seeder文件中创建初始角色(或者你需要的角色)


	$user = $users->find(1);
	$user->name = 'mushi';
	$user->nickname = '虫子';
	$user->save();
	\Spatie\Permission\Models\Role::create([
	    'title' => '管理员',
	    'name' => 'admin',
	    'guard_name' => 'admin'
	]);
  1. 在seeder中进行添加用户角色的操作(用户表模型必须引入Spatie\Permission\Traits\HasRoles,否则无法使用assignRole等方法)
    (相关操作表为model_has_roles)
// 为用户添加单个角色
$user->assignRole('admin');

// 数组形式的多个角色
$user->assignRole(['super_user', 'admin']);

// 同步角色(不存在添加,存在忽略)
auth()->user()->syncRoles(['admin']);
发布了40 篇原创文章 · 获赞 0 · 访问量 756

猜你喜欢

转载自blog.csdn.net/qj4865/article/details/104449346