切换语言

This commit is contained in:
2025-03-20 11:32:40 +08:00
parent f3fdad93ba
commit a5713b1adf
5 changed files with 55 additions and 15 deletions
+45 -12
View File
@@ -42,7 +42,7 @@ class UserController
//验证密码 //验证密码
// if (!password_verify($userPassword, $hashedPassword)) { // if (!password_verify($userPassword, $hashedPassword)) {
if ($userPassword==$hashedPassword) { if ($userPassword == $hashedPassword) {
return Util::fail([], trans('password_error')); return Util::fail([], trans('password_error'));
} }
$userId = $user['id']; // 实际从数据库获取 $userId = $user['id']; // 实际从数据库获取
@@ -67,7 +67,7 @@ class UserController
*/ */
public function sendCode(Request $request) public function sendCode(Request $request)
{ {
$email = Util::getParam($request,'email'); $email = Util::getParam($request, 'email');
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
return Util::fail([], 'email' . trans('not_null')); return Util::fail([], 'email' . trans('not_null'));
} }
@@ -94,16 +94,17 @@ class UserController
*/ */
public function register(Request $request) public function register(Request $request)
{ {
$email = Util::getParam($request,'email','asdf'); $email = Util::getParam($request, 'email', 'asdf');
$code = Util::getParam($request,'code'); $code = Util::getParam($request, 'code');
$sex = Util::getParam($request,'sex',0); $sex = Util::getParam($request, 'sex', 0);
$name = Util::getParam($request,'name',0); $name = Util::getParam($request, 'name', 0);
$password = Util::getParam($request,'password'); $password = Util::getParam($request, 'password');
$mobile = Util::getParam($request,'mobile'); $mobile = Util::getParam($request, 'mobile');
$id = Util::getParam($request,'id'); $id = Util::getParam($request, 'id');
$language = Util::getParam($request, 'language');
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { 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') $res = User::select('id', 'email')
@@ -142,16 +143,48 @@ class UserController
$res = User::where('id', $id) $res = User::where('id', $id)
->update($data); ->update($data);
// Log::info('update', ['res' => $res]); // Log::info('update', ['res' => $res]);
(!$res)?: $res=User::find($id)->toArray(); (!$res) ?: $res = User::find($id)->toArray();
} }
unset($res['password']); unset($res['password']);
locale($language);
if ($res) { if ($res) {
return Util::success($res,trans('register_success')); return Util::success($res, trans('register_success'));
} else { } else {
return Util::fail($res, trans('register_fail')); 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'));
}
}
} }
+2 -1
View File
@@ -70,7 +70,7 @@ class AuthMiddleware implements MiddlewareInterface
$userId = $decoded->sub; $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); ->find($userId);
if(!$user){ if(!$user){
return Util::fail(['user'=>$user],trans('user_none')); return Util::fail(['user'=>$user],trans('user_none'));
@@ -80,6 +80,7 @@ class AuthMiddleware implements MiddlewareInterface
// 将用户ID存入请求对象,供后续使用 // 将用户ID存入请求对象,供后续使用
// $request->user = ['id' => $userId]; // $request->user = ['id' => $userId];
$request->user = $user; $request->user = $user;
locale($user['language']);
return $handler($request); return $handler($request);
} catch (BusinessException $e) { } catch (BusinessException $e) {
return json(['code' => 401, 'msg' => $e->getMessage()]); return json(['code' => 401, 'msg' => $e->getMessage()]);
+2 -2
View File
@@ -17,9 +17,9 @@
*/ */
return [ return [
// 默认语言 // 默认语言
'locale' => 'zh_CN', 'locale' => 'en',
// 回退语言,当前语言中无法找到翻译时则尝试使用回退语言中的翻译 // 回退语言,当前语言中无法找到翻译时则尝试使用回退语言中的翻译
'fallback_locale' => ['zh_CN', 'en'], 'fallback_locale' => ['en', 'zh_CN'],
// Folder where language files are stored // Folder where language files are stored
'path' => base_path() . '/resource/translations', 'path' => base_path() . '/resource/translations',
]; ];
+3
View File
@@ -14,4 +14,7 @@ return [
'save_fail' => 'save fail', 'save_fail' => 'save fail',
'register_success' => 'register success', 'register_success' => 'register success',
'register_fail' => 'register fail', 'register_fail' => 'register fail',
'language_success' => 'Successfully switched languages',
'language_fail' => 'Language switching failed',
'param_error' => 'param error',
]; ];
+3
View File
@@ -14,4 +14,7 @@ return [
'save_fail' => '保存失败', 'save_fail' => '保存失败',
'register_success' => '注册成功', 'register_success' => '注册成功',
'register_fail' => '注册失败', 'register_fail' => '注册失败',
'language_success' => '切换语言成功',
'language_fail' => '切换语言失败',
'param_error' => '参数错误',
]; ];