diff --git a/app/controller/UserController.php b/app/controller/UserController.php index bbbc5e7..ec1f9e8 100644 --- a/app/controller/UserController.php +++ b/app/controller/UserController.php @@ -42,7 +42,7 @@ class UserController //验证密码 // if (!password_verify($userPassword, $hashedPassword)) { - if ($userPassword==$hashedPassword) { + if ($userPassword == $hashedPassword) { return Util::fail([], trans('password_error')); } $userId = $user['id']; // 实际从数据库获取 @@ -67,7 +67,7 @@ class UserController */ public function sendCode(Request $request) { - $email = Util::getParam($request,'email'); + $email = Util::getParam($request, 'email'); if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { return Util::fail([], 'email' . trans('not_null')); } @@ -94,16 +94,17 @@ class UserController */ public function register(Request $request) { - $email = Util::getParam($request,'email','asdf'); - $code = Util::getParam($request,'code'); - $sex = Util::getParam($request,'sex',0); - $name = Util::getParam($request,'name',0); - $password = Util::getParam($request,'password'); - $mobile = Util::getParam($request,'mobile'); - $id = Util::getParam($request,'id'); + $email = Util::getParam($request, 'email', 'asdf'); + $code = Util::getParam($request, 'code'); + $sex = Util::getParam($request, 'sex', 0); + $name = Util::getParam($request, 'name', 0); + $password = Util::getParam($request, 'password'); + $mobile = Util::getParam($request, 'mobile'); + $id = Util::getParam($request, 'id'); + $language = Util::getParam($request, 'language'); if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { - return Util::fail([], 'email'.$email . trans('not_null')); + return Util::fail([], 'email' . $email . trans('not_null')); } $res = User::select('id', 'email') @@ -142,16 +143,48 @@ class UserController $res = User::where('id', $id) ->update($data); // Log::info('update', ['res' => $res]); - (!$res)?: $res=User::find($id)->toArray(); + (!$res) ?: $res = User::find($id)->toArray(); } unset($res['password']); + locale($language); if ($res) { - return Util::success($res,trans('register_success')); + return Util::success($res, trans('register_success')); } else { return Util::fail($res, trans('register_fail')); } } + /** + * 注册 + * @param Request $request + * @return \support\Response + * @throws \Random\RandomException + */ + public function language(Request $request) + { + $id = Util::getParam($request, 'id'); + $language = Util::getParam($request, 'language'); + if (Util::isEmpty($id)) { + return Util::fail([], 'id' . trans('not_null')); + } + if (Util::isEmpty($language)) { + return Util::fail([], 'language' . trans('not_null')); + } + if (!in_array($language,['en','zh_CN'])) { + return Util::fail([], trans('param_error')); + } + $data = [ + 'language' => $language, + ]; + $res = User::where('id', $id) + ->update($data); + locale($language); + if ($res) { + return Util::success(null, trans('language_success')); + } else { + return Util::fail(null, trans('language_fail')); + } + } } \ No newline at end of file diff --git a/app/middleware/AuthMiddleware.php b/app/middleware/AuthMiddleware.php index 7bd6583..c178cd9 100644 --- a/app/middleware/AuthMiddleware.php +++ b/app/middleware/AuthMiddleware.php @@ -70,7 +70,7 @@ class AuthMiddleware implements MiddlewareInterface $userId = $decoded->sub; - $user = User::select(['id','name','sex','role','avatar','email','password']) + $user = User::select(['id','name','sex','role','avatar','email','password','language']) ->find($userId); if(!$user){ return Util::fail(['user'=>$user],trans('user_none')); @@ -80,6 +80,7 @@ class AuthMiddleware implements MiddlewareInterface // 将用户ID存入请求对象,供后续使用 // $request->user = ['id' => $userId]; $request->user = $user; + locale($user['language']); return $handler($request); } catch (BusinessException $e) { return json(['code' => 401, 'msg' => $e->getMessage()]); diff --git a/config/translation.php b/config/translation.php index f7790ec..d5cb67e 100644 --- a/config/translation.php +++ b/config/translation.php @@ -17,9 +17,9 @@ */ return [ // 默认语言 - 'locale' => 'zh_CN', + 'locale' => 'en', // 回退语言,当前语言中无法找到翻译时则尝试使用回退语言中的翻译 - 'fallback_locale' => ['zh_CN', 'en'], + 'fallback_locale' => ['en', 'zh_CN'], // Folder where language files are stored 'path' => base_path() . '/resource/translations', ]; diff --git a/resource/translations/en/messages.php b/resource/translations/en/messages.php index cf6e2f3..2642606 100644 --- a/resource/translations/en/messages.php +++ b/resource/translations/en/messages.php @@ -14,4 +14,7 @@ return [ 'save_fail' => 'save fail', 'register_success' => 'register success', 'register_fail' => 'register fail', + 'language_success' => 'Successfully switched languages', + 'language_fail' => 'Language switching failed', + 'param_error' => 'param error', ]; \ No newline at end of file diff --git a/resource/translations/zh_CN/messages.php b/resource/translations/zh_CN/messages.php index 821a680..713e9c4 100644 --- a/resource/translations/zh_CN/messages.php +++ b/resource/translations/zh_CN/messages.php @@ -14,4 +14,7 @@ return [ 'save_fail' => '保存失败', 'register_success' => '注册成功', 'register_fail' => '注册失败', + 'language_success' => '切换语言成功', + 'language_fail' => '切换语言失败', + 'param_error' => '参数错误', ]; \ No newline at end of file