public function actionSend()
 {
     $partner = new PartnerRequest();
     if (Yii::$app->user->isGuest) {
         $user = \Yii::createObject(RegistrationForm::className());
         $profile = \Yii::createObject(Profile::className());
     } else {
         $user = User::findOne(Yii::$app->user->id);
         $profile = Profile::findOne($user->id);
     }
     if (Yii::$app->request->isPost) {
         if (Yii::$app->user->isGuest) {
             if ($user->load(\Yii::$app->request->post())) {
                 $profile->user_id = $user->register();
                 if ($profile->load(Yii::$app->request->post())) {
                     if ($profile->validate()) {
                         $profile->save();
                     }
                 }
             } else {
                 throw new Exception('Registration is failed.');
             }
         }
         $partner->load(Yii::$app->request->post());
         if ($partner->validate()) {
             $partner->sender_id = $profile->user_id;
             $partner->moderation_status = PartnerRequest::STATUS_ON_MODERATION;
             $partner->save();
             $this->trigger(self::EVENT_SEND, new PartnersEvents());
             Yii::$app->getSession()->setFlash('success', \Yii::t('shop', 'Your partner request was successfully sent.'));
             return $this->redirect(Yii::$app->request->referrer);
         }
     }
     $this->registerStaticSeoData();
     return $this->render('send', ['partner' => $partner, 'user' => $user, 'profile' => $profile]);
 }
Exemplo n.º 2
0
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getUser()
 {
     return $this->hasOne(User::className(), ['id' => 'user_id']);
 }