public function actionRegisterExtra() { $model = new User(['scenario' => 'register']); $modelExtra = new UserExtra(); $oauth = false; // Dung kiem tra xem co dang ky qua OAuth hay ko if (($oauthParam = Yii::$app->request->getQueryParam('oauth')) != null) { if (($oauthData = StringHelper::decrypt($oauthParam)) != null) { $oauth = true; if ($model->email === null) { $model->email = $oauthData['email']; } if ($model->display_name === null) { $model->display_name = $oauthData['name']; } } } if ($model->load(Yii::$app->request->post()) and $model->validate() and $modelAdditionBlocks = LetHelper::saveAdditionBlocks($model)) { // Default value $model->status = User::STATUS_ACTIVE; // Bỏ qua bước xác thực khi đăng ký qua OAuth if ($oauth === true && !empty($oauthData)) { $model->openids = [$oauthData['provider'] => $oauthData['uid']]; } if ($model->save()) { if (is_array($modelAdditionBlocks)) { foreach ($modelAdditionBlocks as $modelAdditionBlock) { $modelAdditionBlock->_id = (string) $model->_id; $modelAdditionBlock->save(); } } Yii::$app->user->login($model); return $this->goHome(); } } return $this->render('registerExtra', ['model' => $model, 'modelExtra' => $modelExtra]); }