UpPwdForm.php 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. <?php
  2. namespace api\modules\v1\forms;
  3. use Yii;
  4. use common\enums\MemberTypeEnum;
  5. use common\helpers\RegularHelper;
  6. use common\enums\SmsUsageEnum;
  7. use common\models\member\Member;
  8. use common\models\validators\SmsCodeValidator;
  9. use common\enums\AccessTokenGroupEnum;
  10. /**
  11. * Class UpPwdForm
  12. * @package api\modules\v1\forms
  13. * @author jianyan74 <751393839@qq.com>
  14. */
  15. class UpPwdForm extends \common\forms\LoginForm
  16. {
  17. public $mobile;
  18. public $password;
  19. public $password_repetition;
  20. public $code;
  21. public $group;
  22. /**
  23. * @inheritdoc
  24. */
  25. public function rules()
  26. {
  27. return [
  28. [['mobile', 'group', 'code', 'password', 'password_repetition'], 'required'],
  29. [['password'], 'string', 'min' => 6],
  30. ['code', SmsCodeValidator::class, 'usage' => SmsUsageEnum::UP_PWD],
  31. ['mobile', 'match', 'pattern' => RegularHelper::mobile(), 'message' => '请输入正确的手机号码'],
  32. [['password_repetition'], 'compare', 'compareAttribute' => 'password'],// 验证新密码和重复密码是否相等
  33. ['group', 'in', 'range' => AccessTokenGroupEnum::getKeys()],
  34. ['password', 'validateMobile'],
  35. ];
  36. }
  37. public function attributeLabels()
  38. {
  39. return [
  40. 'mobile' => '手机号码',
  41. 'password' => '密码',
  42. 'password_repetition' => '重复密码',
  43. 'group' => '类型',
  44. 'code' => '验证码',
  45. ];
  46. }
  47. /**
  48. * @param $attribute
  49. */
  50. public function validateMobile($attribute)
  51. {
  52. if (!$this->getUser()) {
  53. $this->addError($attribute, '找不到用户');
  54. }
  55. }
  56. /**
  57. * @return Member|mixed|null
  58. */
  59. public function getUser()
  60. {
  61. if ($this->_user == false) {
  62. $this->_user = Yii::$app->services->member->findByCondition([
  63. 'mobile' => $this->mobile,
  64. 'type' => MemberTypeEnum::MEMBER
  65. ]);
  66. }
  67. return $this->_user;
  68. }
  69. }
粤ICP备19079148号