Я использую базовый шаблон Yii2 и хочу назначить роль, когда пользователь зарегистрируется.
Пожалуйста, проверьте следующий код:
public function signup()
{
if (!$this->validate()) {
return null;
}
$user = new User();
$user->fname = $this->fname;
$user->mname = $this->mname;
$user->lname = $this->lname;
$user->address = $this->address;
$user->username = $this->username;
$user->email = $this->email;
$user->setPassword($this->password);
$user->generateAuthKey();
$auth = new DbManager;
$auth->init();
$getrole = $auth->getRole($this->role);
$auth->assign($getrole, Yii::$app->user->id);
return $user->save() ? $user : null;
}
Теперь проблема в том, что когда пользователь регистрируется, пользовательские данные будут сохранены, и новое назначение будет вставлено, но идентификатор пользователя будет неверным.