Laravel 5 AuthServiceProvider流程

时间:2016-01-08 04:12:13

标签: laravel-5 authorization roles

我是Laravel的新手,所以我需要帮助解决我的AuthServiceProvider类问题。

如果用户可以拥有多个角色,我应该如何编写角色控制? 我有这个:

$gate->define( 'admin', function ( $user )
{
    return $user->roles()
        ->where( 'name', 'admin' )
        ->orWhere( 'name', 'super_admin' )
        ->first();
} );

或者写得更好

$gate->define( 'admin', function ( $user )
{
    foreach( $user->roles as $role )
    {
        if( $role->name == 'admin' || $role->name == 'super_admin' ) return true
    }
    return false;
} );

还是有更好的方法吗?第一个示例的查询是执行一次还是每次需要检查用户角色?

THX。

1 个答案:

答案 0 :(得分:2)

您可以将现成的包用于角色和不同类型的权限。这是我使用过的一些软件包。

https://github.com/romanbican/roles

https://github.com/Zizaco/entrust