RegisterForm.php 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. <?php
  2. namespace api\modules\v1\forms;
  3. use yii\base\Model;
  4. use yii\db\ActiveQuery;
  5. use common\enums\MemberTypeEnum;
  6. use common\enums\StatusEnum;
  7. use common\helpers\RegularHelper;
  8. use common\models\member\Member;
  9. use common\enums\SmsUsageEnum;
  10. use common\enums\AccessTokenGroupEnum;
  11. use common\models\validators\SmsCodeValidator;
  12. /**
  13. * Class RegisterForm
  14. * @package api\modules\v1\forms
  15. * @author jianyan74 <751393839@qq.com>
  16. */
  17. class RegisterForm extends Model
  18. {
  19. public $mobile;
  20. public $password;
  21. public $password_repetition;
  22. public $code;
  23. public $group;
  24. public $nickname;
  25. /**
  26. * @inheritdoc
  27. */
  28. public function rules()
  29. {
  30. return [
  31. [['mobile', 'group', 'code', 'password', 'password_repetition', 'nickname'], 'required'],
  32. [['nickname'], 'string'],
  33. [['password'], 'string', 'min' => 6],
  34. [
  35. ['mobile'],
  36. 'unique',
  37. 'targetClass' => Member::class,
  38. 'targetAttribute' => 'mobile',
  39. 'filter' => function (ActiveQuery $query) {
  40. return $query
  41. ->andWhere(['type' => MemberTypeEnum::MEMBER])
  42. ->andWhere(['>=', 'status', StatusEnum::DISABLED]);
  43. },
  44. 'message' => '此{attribute}已存在。'
  45. ],
  46. ['mobile', 'match', 'pattern' => RegularHelper::mobile(), 'message' => '请输入正确的手机号码'],
  47. [['password_repetition'], 'compare', 'compareAttribute' => 'password'],// 验证新密码和重复密码是否相等
  48. ['group', 'in', 'range' => AccessTokenGroupEnum::getKeys()],
  49. ['code', SmsCodeValidator::class, 'usage' => SmsUsageEnum::REGISTER],
  50. ];
  51. }
  52. public function attributeLabels()
  53. {
  54. return [
  55. 'mobile' => '手机号码',
  56. 'nickname' => '昵称',
  57. 'password' => '密码',
  58. 'password_repetition' => '重复密码',
  59. 'group' => '类型',
  60. 'code' => '验证码',
  61. ];
  62. }
  63. }
粤ICP备19079148号