diff --git a/app/Http/Middleware/SetLocaleAdmin.php b/app/Http/Middleware/SetLocaleAdmin.php index 1b3daaa5..2807bc1d 100644 --- a/app/Http/Middleware/SetLocaleAdmin.php +++ b/app/Http/Middleware/SetLocaleAdmin.php @@ -17,8 +17,8 @@ class SetLocaleAdmin */ public function handle(Request $request, Closure $next) { - $currentLocale = current_user()->locale; - if (in_array($currentLocale, languages()->toArray())) { + $currentLocale = current_user()->locale ?? 'en'; + if (in_array($currentLocale, admin_languages())) { App::setLocale($currentLocale); } else { App::setLocale('en'); diff --git a/beike/Admin/Http/Controllers/LanguageController.php b/beike/Admin/Http/Controllers/LanguageController.php index 7e312f31..5f424de4 100644 --- a/beike/Admin/Http/Controllers/LanguageController.php +++ b/beike/Admin/Http/Controllers/LanguageController.php @@ -5,22 +5,56 @@ * @copyright 2022 opencart.cn - All Rights Reserved * @link http://www.guangdawangluo.com * @author TL - * @created 2022-08-04 16:21:14 - * @modified 2022-08-04 16:21:14 + * @created 2022-07-05 16:37:04 + * @created 2022-07-05 16:37:04 */ namespace Beike\Admin\Http\Controllers; +use Beike\Repositories\LanguageRepo; +use Exception; +use Illuminate\Http\RedirectResponse; +use Illuminate\Http\Request; use Illuminate\Support\Facades\Redirect; class LanguageController extends Controller { - public function index($lang) + + public function index() { - if (in_array($lang, languages()->toArray())) { - current_user()->locale = $lang; - current_user()->save(); - } - return Redirect::back(); + $languages = LanguageRepo::all(); + + $data = [ + 'languages' => $languages, + ]; + + return view('admin::pages.languages.index', $data); + } + + public function store(Request $request): array + { + $language = LanguageRepo::create($request->only('name', 'code', 'locale', 'image', 'sort_order', 'status')); + + return json_success('创建成功', $language); + } + + /** + * @param Request $request + * @param int $id + * @return array + * @throws Exception + */ + public function update(Request $request, int $id): array + { + $language = LanguageRepo::update($id, $request->only('name', 'code', 'locale', 'image', 'sort_order', 'status')); + + return json_success('更新成功!', $language); + } + + public function destroy(int $currencyId): array + { + LanguageRepo::delete($currencyId); + + return json_success('删除成功!'); } } diff --git a/beike/Admin/Routes/admin.php b/beike/Admin/Routes/admin.php index 3dc25270..720a6fd1 100644 --- a/beike/Admin/Routes/admin.php +++ b/beike/Admin/Routes/admin.php @@ -54,6 +54,7 @@ Route::prefix($adminName) Route::delete('file_manager/directories', [Controllers\FileManagerController::class, 'destroyDirectories'])->name('file_manager.delete_directories'); Route::get('logout', [Controllers\LogoutController::class, 'index'])->name('logout.index'); + Route::resource('languages', Controllers\LanguageController::class); Route::middleware('can:orders_index')->get('orders', [Controllers\OrderController::class, 'index'])->name('orders.index'); Route::middleware('can:orders_show')->get('orders/{order}', [Controllers\OrderController::class, 'show'])->name('orders.show');