Yii2 Измените ССЫЛКУ после подтверждения по электронной почте - PullRequest
0 голосов
/ 05 октября 2018

Я использую Yii2 и модуль Dektrium для регистрации части моего проекта.В моем проекте, когда я отправляю письмо на электронную почту пользователя со ссылкой для подтверждения, и он успешно подтверждает ее, я хочу перенаправить ее на страницу своего профиля, теперь по умолчанию модуль перенаправляет на пользовательскую страницу, например

... / user/ Подтвердить / 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']);
}
...