我正在尝试laravel授权,我需要在用户模型上检查条件并返回布尔值的方法!例如呢?
$user->hasRole(['superadmin']); // should return true/false
,模型中:
class User extends Model{
/*****
*****
*****/
public function roles()
{
return $this->hasMany('AppRole');
}
public function hasRole($roles)
{
// some validation and return boolean
}
}
我如何通过laravel模型做到这一点?有办法吗?
public function hasRole($roles)
{
return !$this->roles->pluck('role_column')->intersect($roles)->isEmpty();
}
别忘了修改'role_column'
由于您有一个字符串数组,并且我假设您的角色有名称,因此您可以使用一个简单的sql查询来完成此操作。
public function hasRole($roles) {
return $this->roles->whereIn('role', $strings)->exists();
}