用于检查像hasRole(['admin','superadmin')这样的条件的laravel模型方法?

时间:2016-10-02 17:53:59

标签: php laravel authorization models role

我正在尝试laravel授权,我需要在User模型上检查条件并返回布尔值的方法! 例如?

class User extends Model{
    /*****
    *****
    *****/
    public function roles()
    {
        return $this->hasMany('App\Role');
    }

    public function hasRole($roles)
    {
        // some validation and return boolean
    }
}

并在模型中:

{{1}}

我如何通过laravel模型这样做?有什么办法吗?

2 个答案:

答案 0 :(得分:1)

public function hasRole($roles)
{
    return !$this->roles->pluck('role_column')->intersect($roles)->isEmpty();
}

别忘了改变角色列'

答案 1 :(得分:0)

由于你有一个字符串数组,并且我假设你的角色有名字,你可以用一个简单的SQL查询来完成。

public function hasRole($roles) {
    return $this->roles->whereIn('role', $strings)->exists();
}