From f26ef1e985b0d2d5a9ffad8eb2fb5907b955ef80 Mon Sep 17 00:00:00 2001 From: jsasg <735273025@qq.com> Date: Sat, 18 Jan 2025 17:21:34 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=E8=AF=AD=E8=A8=80?= =?UTF-8?q?=E5=88=97=E8=A1=A8=EF=BC=8C=E8=AF=AD=E8=A8=80=E5=88=87=E6=8D=A2?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/admin/controller/v1/Language.php | 49 ++++++++++++++++++++++++++++ app/admin/model/v1/LanguageModel.php | 6 ++++ app/admin/route/v1.php | 9 +++++ 3 files changed, 64 insertions(+) create mode 100644 app/admin/controller/v1/Language.php diff --git a/app/admin/controller/v1/Language.php b/app/admin/controller/v1/Language.php new file mode 100644 index 00000000..4b20608f --- /dev/null +++ b/app/admin/controller/v1/Language.php @@ -0,0 +1,49 @@ + 'language_name', + 'code' => 'language_code', + 'icon' => 'language_icon', + ]) + ->with('country') + ->order(['sort' => 'desc', 'id' => 'asc']) + ->hidden(['country_id', 'country']) + ->select() + ->bindAttr('country', ['country_name' => 'name']); + + return success('操作成功', $language); + } + + // 语言切换 + public function cutover() + { + $id = request()->param('id'); + $language = LanguageModel::id($id)->find(); + if (is_null($language)) { + return error('语言不存在'); + } + + try { + Cookie::set('lang', $language->code); + } catch (\Throwable $th) { + Log::error($th->getMessage()); + return error('操作失败'); + } + + return success('操作成功'); + } +} diff --git a/app/admin/model/v1/LanguageModel.php b/app/admin/model/v1/LanguageModel.php index 20ab873b..60384ac3 100644 --- a/app/admin/model/v1/LanguageModel.php +++ b/app/admin/model/v1/LanguageModel.php @@ -15,4 +15,10 @@ class LanguageModel extends LanguageBaseModel { return $this->belongsTo(CountryModel::class, 'country_id', 'id'); } + + // 根据id查询 + public function scopeId($query, $value) + { + $query->where('id', '=', $value); + } } diff --git a/app/admin/route/v1.php b/app/admin/route/v1.php index cccb9108..2818846b 100644 --- a/app/admin/route/v1.php +++ b/app/admin/route/v1.php @@ -26,6 +26,15 @@ Route::group('v1', function () { Route::post('login', 'Login/index'); }); + // 语言模块 + Route::group('language', function () { + // 语言列表 + Route::get('list', 'Language/list'); + + // 语言切换 + Route::get('cutover/:id', 'Language/cutover'); + }); + // 图片管理 Route::group('images', function () { // 图片上传