美文网首页
Laravel-ACL 验证权限和角色

Laravel-ACL 验证权限和角色

作者: 伍源辉 | 来源:发表于2017-01-05 13:58 被阅读119次

    验证角色

    可以通过调用 is 方法验证角色。

    基于用户的验证。

    Laravel 5.3 使用 hasRole() 代替 is()

    is()/hasRole() 方法支持用逗号代表 AND,管道分隔符代表 OR。你也可以传入操作符作为第二个参数。

    // laravel 5.3 使用 hasRole()
    $user = User::first();
    $user->hasRole('administrator');
    $user->hasRoleAdministrator();  // using method
    $user->hasRole('administrator|moderator');
    
    // laravel < 5.3
    $user = User::first();
    $user->is('administrator');
    $user->isAdministrator();   // using method
    
    // 使用管道分隔符作为 OR 操作符
    // 任何一个角色通过则返回 true
    $user->is('administrator|moderator');
    
    // 使用逗号作为 AND 操作符
    // 所有指定的角色必须全部通过才返回 true
    $user->is('administrator,moderator');
    
    // 传入操作符作为第二个参数
    $user->is(array('administrator', 'moderator'), 'or');
    

    验证权限

    可以通过调用 can 方法验证权限。

    基于角色的验证。

    can() 方法支持用逗号代表 AND,管道分隔符代表 OR。你也可以传入操作符作为第二个参数。

    $admin = Role::first(); // administrator
    $admin->can('view.user');
    $admin->canViewUser();  // using method.
    
    // 数组形式
    $admin->can(array('view.user', 'edit.user'));
    
    // 数组形式加 or 操作符
    $admin->can(array('view.user', 'edit.user'), 'or');
    
    // 使用管道分隔符作为 OR 操作符
    // 任何一个权限通过则返回 true
    $admin->can('view.user|edit.user|view.admin|delete.admin');
    
    // 使用逗号作为 AND 操作符
    // 所有指定的权限必须全部通过才返回 true
    $admin->can('view.user,edit.user,view.admin,delete.admin');
    

    基于用户的验证

    $user = User::first();
    $user->can('delete.user');
    $user->canDeleteUser(); // using method
    

    相关文章

      网友评论

          本文标题:Laravel-ACL 验证权限和角色

          本文链接:https://www.haomeiwen.com/subject/jblzvttx.html