- 使模型拥有所有权限操作方法
use Spatie\Permission\Traits\HasRoles;
class User extends Authenticatable
{
use HasRoles;
...
}
-
各个表关联关系
其中,model_id相当于user_id,model_has_roles表示用户所拥有的角色。 -
在seeder文件中创建初始角色(或者你需要的角色)
$user = $users->find(1);
$user->name = 'mushi';
$user->nickname = '虫子';
$user->save();
\Spatie\Permission\Models\Role::create([
'title' => '管理员',
'name' => 'admin',
'guard_name' => 'admin'
]);
- 在seeder中进行添加用户角色的操作(用户表模型必须引入
Spatie\Permission\Traits\HasRoles
,否则无法使用assignRole等方法)
(相关操作表为model_has_roles)
// 为用户添加单个角色
$user->assignRole('admin');
// 数组形式的多个角色
$user->assignRole(['super_user', 'admin']);
// 同步角色(不存在添加,存在忽略)
auth()->user()->syncRoles(['admin']);