创建角色
$roleAdmin = new Role();
$roleAdmin->name = 'Administrator';
$roleAdmin->slug = 'administrator';
$roleAdmin->description = 'manage administration privileges';
$roleAdmin->save();
//或者使用数组形式创建
$role = new Role();
$roleAdmin = $role->create([
'name' => 'Administrator',
'slug' => 'administrator',
'description' => 'manage administration privileges'
]);
$role = new Role();
$roleModerator = $role->create([
'name' => 'Moderator',
'slug' => 'moderator',
'description' => 'manage moderator privileges'
]);
分配角色给用户
提醒: 你可以传入对象、数组、role->id 或者只是 slug。
首先要在你的 User 模型中引入 HasRole trait 。
//...
use Kodeine\Acl\Traits\HasRole;
class User extends Model
{
use HasRole;
//...
$user = User::find(1);
// 传入 object
$user->assignRole($roleAdmin);
// 传入 id
$user->assignRole($roleAdmin->id);
// 只传入 slug
$user->assignRole('administrator');
一次过传入多个角色:
// 数组形式传入多个角色
$user->assignRole(array($roleAdmin, $roleModerator));
// 或者传入通过逗号分隔的多个角色 slugs
$user->assignRole('administrator, moderator');
提醒: 如果角色不存在系统会抛出异常。
为用户撤销角色
你可以使用类似的方式为用户撤销角色
提醒: 你可以传入对象、数组、role->id 或者只是 slug。
$user = User::find(1);
// 传入 object
$user->revokeRole($roleAdmin);
// 传入 id
$user->revokeRole($roleAdmin->id);
// 只传入 slug
$user->revokeRole('administrator');
一次过传入多个角色:
// 数组形式传入多个角色
$user->revokeRole(array($roleAdmin, $roleModerator));
// 或者传入通过逗号分隔的多个角色 slugs
$user->revokeRole('administrator, moderator');
提醒: 如果角色不存在系统会抛出异常。
同步角色给用户
你可以传入角色对象数据、ids 或者 slugs 来同步角色给用户(参数中新的角色会插入到中间表,参数中没有的角色会从中间表移除)。
$user->syncRoles([1,2,3]);
$user->syncRoles('administrator, moderator');
$user->syncRoles((array($roleAdmin, $roleModerator));
提醒: 如果角色不存在系统会抛出异常。
撤销用户的所有角色
$user->revokeAllRoles();
获取用户的所有角色
$user = User::first();
$user->getRoles();