Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- namespace app\models;
- use yii\base\Model;
- use yii\web\UploadedFile;
- use Yii;
- class RegForm extends \yii\db\ActiveRecord
- {
- public $username;
- public $email;
- public $password;
- public $status;
- public $name;
- public $surname;
- public $fname;
- public $national_id;
- public $sex_id;
- public $date;
- public $skype;
- public $file;
- public $photo;
- public static function tableName()
- {
- return 'user';
- }
- public function rules()
- {
- return [
- [['username', 'email', 'password'],'filter', 'filter' => 'trim'],
- [['username', 'email', 'password', 'name', 'surname', 'fname', 'national_id', 'photo', 'sex_id', 'date', 'skype'],'required'],
- [['file'], 'file', 'skipOnEmpty' => false, 'extensions' => 'jpg, png'],
- ['username', 'string', 'min' => 2, 'max' => 255],
- ['password', 'string', 'min' => 6, 'max' => 255],
- ['username', 'unique',
- 'targetClass' => User::className(),
- 'message' => 'Это имя уже занято.'],
- ['email', 'email'],
- ['email', 'unique',
- 'targetClass' => User::className(),
- 'message' => 'Эта почта уже занята.'],
- ['status', 'default', 'value' => User::STATUS_ACTIVE, 'on' => 'default'],
- ['status', 'in', 'range' =>[
- User::STATUS_NOT_ACTIVE,
- User::STATUS_ACTIVE
- ]],
- ['status', 'default', 'value' => User::STATUS_NOT_ACTIVE, 'on' => 'emailActivation'],
- ];
- }
- public function attributeLabels()
- {
- return [
- 'username' => 'Username',
- 'email' => 'Email',
- 'password' => 'Password',
- 'Name' => 'Name',
- ];
- }
- public function reg()
- {
- $user = new User();
- $user->username = $this->username;
- $user->name = $this->name;
- $user->surname = $this->surname;
- $user->fname = $this->fname;
- $user->national_id = $this->national_id;
- $user->sex_id = $this->sex_id;
- $user->date = $this->date;
- $user->skype = $this->skype;
- $user->email = $this->email;
- $user->status = $this->status;
- $user->setPassword($this->password);
- $user->generateAuthKey();
- if($this->scenario === 'emailActivation')
- $user->generateSecretKey();
- return $user->save() ? $user : null;
- }
- public function sendActivationEmail($user)
- {
- return Yii::$app->mailer->compose('activationEmail', ['user' => $user])
- ->setFrom([Yii::$app->params['supportEmail'] => Yii::$app->name.' (отправлено роботом).'])
- ->setTo($this->email)
- ->setSubject('Активация для '.Yii::$app->name)
- ->send();
- }
- }
Add Comment
Please, Sign In to add comment