UserEditForm.php 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * Author: NODELOG
  5. * DateTime: 2017/3/8 17:46
  6. * Description:
  7. */
  8. namespace api\modules\v1\models;
  9. use api\common\models\User;
  10. use common\helpers\Regexp;
  11. use Yii;
  12. use yii\base\Model;
  13. class UserEditForm extends Model
  14. {
  15. //user
  16. public $nickname;
  17. public $tel;
  18. //profile
  19. public $gender;
  20. public $avatar;
  21. public $signature;
  22. private $_user;
  23. /**
  24. * {@inheritdoc}
  25. */
  26. public function rules()
  27. {
  28. return [
  29. [['nickname', 'avatar', 'gender'], 'required'],
  30. [['tel'], 'match', 'pattern' => Regexp::$mobile],
  31. [['tel'], 'validateTel'],//
  32. [['signature'], 'safe'],
  33. ];
  34. }
  35. public function validateTel($attribute, $params)
  36. {
  37. if (!$this->hasErrors()) {
  38. $exists = User::find()->where(['tel' => $this->tel])->andWhere(['not', ['id' => Yii::$app->user->id]])->exists();
  39. if ($exists) {
  40. $this->addError($attribute, '手机号已被绑定');
  41. }
  42. }
  43. }
  44. public function attributeLabels()
  45. {
  46. return [
  47. 'nickname' => '昵称',
  48. 'gender' => '性别',
  49. 'avatar' => '头像',
  50. 'signature' => '签名',
  51. 'tel' => '手机号',
  52. ];
  53. }
  54. /**
  55. * @return bool
  56. * @author nodelog
  57. */
  58. public function edit()
  59. {
  60. if ($this->validate()) {
  61. $user = Yii::$app->user->identity;
  62. $user->nickname = $this->nickname;
  63. $user->tel = $this->tel;
  64. $user->save();
  65. $user->profile->updateAttributes([
  66. 'avatar' => $this->avatar,
  67. 'gender' => $this->gender,
  68. 'signature' => $this->signature,
  69. ]);
  70. return true;
  71. } else {
  72. return false;
  73. }
  74. }
  75. }