'trim'], [['username', 'city'], 'required'], ['username', 'unique', 'targetClass' => '\common\models\User', 'message' => 'This username has already been taken.'], ['username', 'string', 'min' => 2, 'max' => 255], [['city', 'city_custom'], 'string', 'min' => 2, 'max' => 255], ['email', 'filter', 'filter' => 'trim'], ['email', 'required'], ['email', 'email'], ['email', 'string', 'max' => 255], ['email', 'unique', 'targetClass' => '\common\models\User', 'message' => 'This email address has already been taken.'], ['firstname', 'required'], ['verifyCode', 'captcha'], ['type', 'integer'], ['is_customer', 'integer'], ['is_freelancer', 'integer'], ['password', 'required'], ['password', 'string', 'min' => 6], [ 'name', 'required', 'on'=>[SignupForm::SCENARIO_COMPANY] ], [ ['name', 'lastname'], 'safe', 'on'=>[SignupForm::SCENARIO_USER] ], [ 'name', 'required', 'on'=>[SignupForm::SCENARIO_DEFAULT] ], ]; } /** * Signs user up. * * @return User|null the saved model or null if saving fails */ public function signup() { if(empty($this->city)) { $this->city = $this->city_custom; } if ($this->validate()) { $user = new User(); $user->username = $this->username; $user->firstname = $this->firstname; $user->lastname = $this->lastname; $user->email = $this->email; $user->type = $this->type; $user->setPassword($this->password); $user->generateAuthKey(); if ($user->save()) { return $user; } } return null; } /** * @inheritdoc */ public function attributeLabels() { return [ 'username' => 'Логин', 'password' => 'Пароль', 'email' => 'E-mail', 'type' => Yii::t('app', 'Is Default'), 'firstname' => 'Имя', 'lastname' => 'Фамилия', 'city' => 'Город', 'alt_location' => 'Город не в списке', 'is_customer' => '', 'is_freelancer' => '', 'name' => 'Название компании' ]; } }