Я использую Yii2 и модуль Dektrium для регистрации части моего проекта. В моем проекте, когда я отправляю письмо на электронную почту пользователя со ссылкой для подтверждения, и он успешно подтверждает ее, я хочу перенаправить ее на страницу своего профиля, теперь по умолчанию модуль перенаправляет на пользовательскую страницу, например
…/ Пользователь / подтверждение / 780 / -ukCgFop-XUj-SbzrmIpzl0jwe9JgCXI
Как я могу сделать это, чтобы перенаправить на пользователя / профиль?
вот модель:
public function register()
{
if ($this->getIsNewRecord() == false) {
throw new \RuntimeException('Calling "' . __CLASS__ . '::' . __METHOD__ . '" on existing user');
}
$this->pass = $this->password;
$this->confirmed_at = $this->module->enableConfirmation ? null : time();
$this->password = $this->module->enableGeneratingPassword ? Password::generate(8) : $this->password;
$this->username = $this->email;
$this->trigger(self::BEFORE_REGISTER);
if (!$this->save(false)) {
return false;
}
if ($this->module->enableConfirmation) {
/** @var Token $token */
$token = Yii::createObject(['class' => Token::className(), 'type' => Token::TYPE_CONFIRMATION]);
$token->link('user', $this);
}
$this->mailer->welcomeSubject = Yii::t('app', 'app.welcome_to_sportfinders');
$this->mailer->sendWelcomeMessage($this, isset($token) ? $token : null);
//Yii::$app->user->login($this, $this->module->rememberFor);
$this->trigger(self::AFTER_REGISTER);
return true;
}
и часть контроллера
public function actionConfirm($id, $code)
{
$user = $this->finder->findUserById($id);
if ($user === null || $this->module->emailChangeStrategy == Module::STRATEGY_INSECURE) {
throw new NotFoundHttpException();
}
$event = $this->getUserEvent($user);
$this->trigger(self::EVENT_BEFORE_CONFIRM, $event);
$user->attemptEmailChange($code);
$this->trigger(self::EVENT_AFTER_CONFIRM, $event);
return $this->redirect(['profile']);
}
Задача ещё не решена.
Других решений пока нет …