# :-: 編寫 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);
}
}
```