app/Traits/HasRoles.php
<?php
namespace App\Traits;
use App\Permission;
use App\Role;
trait HasRoles
{
/**
* A user may have multiple roles.
*
* @return \Illuminate\Database\Eloquent\Relations\BelongsToMany
*/
public function roles()
{
return $this->belongsToMany(Role::class);
}
/**
* Assign the given role to the user.
*
* @param string $role
*
* @return mixed
*/
public function assignRole($role)
{
return $this->roles()->save(
Role::whereSlug($role)->firstOrFail()
);
}
/**
* Determine if the user has the given role.
*
* @param mixed $role
*
* @return bool
*/
public function hasRole($role)
{
if (is_string($role)) {
return $this->roles->contains('slug', $role);
}
return (bool) $role->intersect($this->roles)->count();
}
}