MemberForm.php 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. <?php
  2. namespace common\forms;
  3. use Yii;
  4. use common\enums\MemberTypeEnum;
  5. use common\enums\StatusEnum;
  6. use common\helpers\ArrayHelper;
  7. use common\models\member\Member;
  8. /**
  9. * Class MemberForm
  10. * @package common\forms
  11. * @author jianyan74 <751393839@qq.com>
  12. */
  13. class MemberForm extends Member
  14. {
  15. /**
  16. * @var int
  17. */
  18. protected $defaultType = MemberTypeEnum::MEMBER;
  19. /**
  20. * @return array|array[]
  21. */
  22. public function rules()
  23. {
  24. return ArrayHelper::merge(parent::rules(), [
  25. [['mobile'], 'uniqueMobile'],
  26. [['username'], 'uniqueUsername'],
  27. [['email'], 'uniqueEmail'],
  28. [['id'], 'safe'],
  29. ]);
  30. }
  31. /**
  32. * @param $attribute
  33. */
  34. public function uniqueUsername($attribute)
  35. {
  36. $member = Yii::$app->services->member->findByCondition([
  37. 'and',
  38. ['username' => $this->username],
  39. ['type' => $this->defaultType],
  40. ['>=', 'status', StatusEnum::DISABLED]
  41. ]);
  42. if (
  43. !empty($member) &&
  44. $member->id != $this->id
  45. ) {
  46. $this->addError($attribute, '该账号已存在');
  47. }
  48. }
  49. public function uniqueMobile($attribute)
  50. {
  51. $member = Yii::$app->services->member->findByCondition([
  52. 'and',
  53. ['mobile' => $this->mobile],
  54. ['type' => $this->defaultType],
  55. ['>=', 'status', StatusEnum::DISABLED]
  56. ]);
  57. if (
  58. !empty($member) &&
  59. $member->id != $this->id
  60. ) {
  61. $this->addError($attribute, '该手机号码已存在');
  62. }
  63. }
  64. public function uniqueEmail($attribute)
  65. {
  66. $member = Yii::$app->services->member->findByCondition([
  67. 'and',
  68. ['email' => $this->email],
  69. ['type' => $this->defaultType],
  70. ['>=', 'status', StatusEnum::DISABLED]
  71. ]);
  72. if (
  73. !empty($member) &&
  74. $member->id != $this->id
  75. ) {
  76. $this->addError($attribute, '该邮箱已存在');
  77. }
  78. }
  79. }
粤ICP备19079148号