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 () { // 图片上传