Guest User

Untitled

a guest
Feb 21st, 2018
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.83 KB | None | 0 0
  1. <?php
  2.  
  3. namespace app\models;
  4.  
  5. use yii\base\Model;
  6. use yii\web\UploadedFile;
  7. use Yii;
  8.  
  9. class RegForm extends \yii\db\ActiveRecord
  10. {
  11. public $username;
  12. public $email;
  13. public $password;
  14. public $status;
  15. public $name;
  16. public $surname;
  17. public $fname;
  18. public $national_id;
  19. public $sex_id;
  20. public $date;
  21. public $skype;
  22. public $file;
  23. public $photo;
  24.  
  25.  
  26. public static function tableName()
  27. {
  28. return 'user';
  29. }
  30.  
  31. public function rules()
  32. {
  33. return [
  34. [['username', 'email', 'password'],'filter', 'filter' => 'trim'],
  35. [['username', 'email', 'password', 'name', 'surname', 'fname', 'national_id', 'photo', 'sex_id', 'date', 'skype'],'required'],
  36. [['file'], 'file', 'skipOnEmpty' => false, 'extensions' => 'jpg, png'],
  37. ['username', 'string', 'min' => 2, 'max' => 255],
  38. ['password', 'string', 'min' => 6, 'max' => 255],
  39. ['username', 'unique',
  40. 'targetClass' => User::className(),
  41. 'message' => 'Это имя уже занято.'],
  42. ['email', 'email'],
  43. ['email', 'unique',
  44. 'targetClass' => User::className(),
  45. 'message' => 'Эта почта уже занята.'],
  46. ['status', 'default', 'value' => User::STATUS_ACTIVE, 'on' => 'default'],
  47. ['status', 'in', 'range' =>[
  48. User::STATUS_NOT_ACTIVE,
  49. User::STATUS_ACTIVE
  50. ]],
  51. ['status', 'default', 'value' => User::STATUS_NOT_ACTIVE, 'on' => 'emailActivation'],
  52. ];
  53. }
  54.  
  55. public function attributeLabels()
  56. {
  57. return [
  58. 'username' => 'Username',
  59. 'email' => 'Email',
  60. 'password' => 'Password',
  61. 'Name' => 'Name',
  62. ];
  63. }
  64.  
  65. public function reg()
  66. {
  67. $user = new User();
  68. $user->username = $this->username;
  69. $user->name = $this->name;
  70. $user->surname = $this->surname;
  71. $user->fname = $this->fname;
  72. $user->national_id = $this->national_id;
  73. $user->sex_id = $this->sex_id;
  74. $user->date = $this->date;
  75. $user->skype = $this->skype;
  76. $user->email = $this->email;
  77. $user->status = $this->status;
  78. $user->setPassword($this->password);
  79. $user->generateAuthKey();
  80. if($this->scenario === 'emailActivation')
  81. $user->generateSecretKey();
  82. return $user->save() ? $user : null;
  83. }
  84.  
  85. public function sendActivationEmail($user)
  86. {
  87. return Yii::$app->mailer->compose('activationEmail', ['user' => $user])
  88. ->setFrom([Yii::$app->params['supportEmail'] => Yii::$app->name.' (отправлено роботом).'])
  89. ->setTo($this->email)
  90. ->setSubject('Активация для '.Yii::$app->name)
  91. ->send();
  92. }
  93.  
  94.  
  95.  
  96. }
Add Comment
Please, Sign In to add comment