# :-: 编写 Trait
## 编写Trait
> Rbac 权限肯定是需要和 User 和 Role 表关联的,对于使用者而言,肯定是希望直接可以让 User 表 与 Role 表有直接操作的关系,所以这里提供了 Trait 供使用者使用
## 编写 hasRoles
```php
namespace think\permissions\traits;
trait hasRoles
{
public function roles()
{
return $this->belongsToMany(config('permission.model.role'), config('permission.table.user_has_roles'), 'role_id', 'uid');
}
/**
* 获取角色
*/
public function getRoles($full = true)
{
return $full ? $this->roles : $this->roles()->column('role_id');
}
/**
* 删除相关角色
*/
public function detachRoles($roles = null)
{
return $this->roles()->detach($roles);
}
/**
* 关联角色
*/
public function attachRoles($roles = null)
{
return $this->roles()->attach($roles);
}
}
```