SignupForm.php 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. <?php
  2. namespace common\modules\user\models;
  3. use yii\base\Model;
  4. /**
  5. * Signup form.
  6. */
  7. class SignupForm extends Model
  8. {
  9. public $username;
  10. public $email;
  11. public $password;
  12. /**
  13. * {@inheritdoc}
  14. */
  15. public function rules()
  16. {
  17. return [
  18. ['username', 'filter', 'filter' => 'trim'],
  19. ['username', 'required'],
  20. ['username', 'unique', 'targetClass' => '\common\modules\user\models\User', 'message' => '用户名已存在'],
  21. ['username', 'string', 'min' => 2, 'max' => 255],
  22. ['email', 'filter', 'filter' => 'trim'],
  23. ['email', 'required'],
  24. ['email', 'email'],
  25. ['email', 'string', 'max' => 255],
  26. ['email', 'unique', 'targetClass' => '\common\modules\user\models\User', 'message' => '邮箱已被注册'],
  27. ['password', 'required'],
  28. ['password', 'string', 'min' => 6],
  29. ];
  30. }
  31. public function attributeLabels()
  32. {
  33. return [
  34. 'username' => '用户名',
  35. 'email' => '邮箱',
  36. 'password' => '密码',
  37. ];
  38. }
  39. /**
  40. * Signs user up.
  41. *
  42. * @return User|null the saved model or null if saving fails
  43. */
  44. public function signup()
  45. {
  46. if ($this->validate()) {
  47. $user = new User();
  48. $user->username = $this->username;
  49. $user->email = $this->email;
  50. $user->setPassword($this->password);
  51. $user->generateAuthKey();
  52. if ($user->save()) {
  53. return $user;
  54. }
  55. }
  56. return;
  57. }
  58. }