Browse Source

fix:接口适配

super-yimizi 2 months ago
parent
commit
b7eb1ec8f4
2 changed files with 33 additions and 24 deletions
  1. 30 20
      application/api/controller/User.php
  2. 3 4
      application/api/validate/User.php

+ 30 - 20
application/api/controller/User.php

@@ -63,35 +63,45 @@ class User extends Base
     {
     {
         $user = $this->auth->getUser();
         $user = $this->auth->getUser();
         $params = $this->request->param();
         $params = $this->request->param();
-        // 字段不传就报错 所以默认给值
-        $username = $params['username'] ?? '';
-        $avatar   = $params['avatar'] ?? '';
-        $nickname = $params['nickname'] ?? '';
-        $bio      = $params['bio'] ?? '';
-        $age = $params['age'] ?? '';
-        $gender = $params['gender'] ?? '';
-        // 验证器
-        //  替换有域名的头像
-        $avatar = str_replace(cdnurl('', true), '', $avatar);
-        $params['avatar'] = $avatar;
+        
+        // 验证器 - 只验证传递的字段
         $validate = new \app\api\validate\User();
         $validate = new \app\api\validate\User();
         if (!$validate->check($params, [], 'profile')) {
         if (!$validate->check($params, [], 'profile')) {
             $this->error($validate->getError());
             $this->error($validate->getError());
         }
         }
-        // username 不传,则不修改
-        if ($username) {
-            $user->username = $username;
+        
+        // 只有字段有值时才修改
+        if (isset($params['username']) && !empty($params['username'])) {
+            $username = $params['username'];
             $exists = \app\common\model\User::where('username', $username)->where('id', '<>', $this->auth->id)->find();
             $exists = \app\common\model\User::where('username', $username)->where('id', '<>', $this->auth->id)->find();
             if ($exists) {
             if ($exists) {
                 $this->error(__('Username already exists'));
                 $this->error(__('Username already exists'));
             }
             }
+            $user->username = $username;
         }
         }
-        $user->bio = $bio;        
-        $user->nickname = $nickname;
-        $user->username = $username;
-        $user->avatar = $avatar;
-        $user->age = $age;
-        $user->gender = $gender;
+        
+        if (isset($params['avatar']) && !empty($params['avatar'])) {
+            // 替换有域名的头像
+            $avatar = str_replace(cdnurl('', true), '', $params['avatar']);
+            $user->avatar = $avatar;
+        }
+        
+        if (isset($params['nickname']) && !empty($params['nickname'])) {
+            $user->nickname = $params['nickname'];
+        }
+        
+        if (isset($params['bio']) && !empty($params['bio'])) {
+            $user->bio = $params['bio'];
+        }
+        
+        if (isset($params['age']) && !empty($params['age'])) {
+            $user->age = $params['age'];
+        }
+        
+        if (isset($params['gender']) && !empty($params['gender'])) {
+            $user->gender = $params['gender'];
+        }
+        
         $user->save();
         $user->save();
 
 
         $this->success('修改成功!');
         $this->success('修改成功!');

+ 3 - 4
application/api/validate/User.php

@@ -11,7 +11,7 @@ class User extends Validate
     public function __construct(array $rules = [], $message = [], $field = [])
     public function __construct(array $rules = [], $message = [], $field = [])
     {
     {
         // 动态设置枚举值
         // 动态设置枚举值
-        $this->rule['gender'] = 'require|in:' .implode(',', UserEnum::getGenderList());
+        $this->rule['gender'] = 'in:' .implode(',', UserEnum::getGenderList());
         parent::__construct($rules, $message, $field);
         parent::__construct($rules, $message, $field);
     }
     }
     /**
     /**
@@ -20,14 +20,13 @@ class User extends Validate
     protected $rule = [
     protected $rule = [
         'account'   => 'require|length:3,30',
         'account'   => 'require|length:3,30',
         'username'  => 'length:3,30',
         'username'  => 'length:3,30',
-        'nickname'  => 'require|length:3,30',
+        'nickname'  => 'length:3,30',
         'password'  => 'require|length:6,30',
         'password'  => 'require|length:6,30',
         'mobile'    => 'require|regex:/^1\d{10}$/',
         'mobile'    => 'require|regex:/^1\d{10}$/',
         'email'     => 'email',
         'email'     => 'email',
         // 验证头像  验证文件后缀
         // 验证头像  验证文件后缀
 
 
         'avatar'    => [
         'avatar'    => [
-            'require',
             'regex'=>'/\\.(jpg|jpeg|png|gif|bmp|webp)$/i'
             'regex'=>'/\\.(jpg|jpeg|png|gif|bmp|webp)$/i'
         ],
         ],
 
 
@@ -37,7 +36,7 @@ class User extends Validate
         'balance'   => 'float|egt:0',
         'balance'   => 'float|egt:0',
         'score'     => 'integer|egt:0',
         'score'     => 'integer|egt:0',
         'level'     => 'integer|egt:0',
         'level'     => 'integer|egt:0',
-        'age'       => 'require|integer|egt:0|elt:200', 
+        'age'       => 'integer|egt:0|elt:200', 
         'captcha'   => 'require|length:4,6'
         'captcha'   => 'require|length:4,6'
     ];
     ];