У меня есть роль Creator
и я хочу знать, как я могу проверить, имеет ли зарегистрированный пользователь Creator
.
Я создал функцию в своем классе User
как:
public function getIsCreator(){
$role = Yii::$app->authManager->getRole('Creator')->name;
$rolesById = Yii::$app->authManager->getRolesByUser($this->id);
return in_array($role, $rolesById);
}
Может ли кто-нибудь сказать мне, где я ошибаюсь? Потому что вышеуказанный код не проверяет, как ожидалось.
Чтобы проверить, имеет ли пользователь заданную роль или нет, вы можете использовать эту функцию:
public function hasRole($roleName, $userId) {
$authManager = \Yii::$app->getAuthManager();
return $authManager->getAssignment($roleName, $userId) ? true : false;
}
var_dump
ваши значения и посмотрите, что у вас там, не так ли?