后台用户语言设置

This commit is contained in:
TL 2022-08-04 10:53:06 +08:00
parent be9a795a0f
commit 5890db5e08
3 changed files with 45 additions and 10 deletions

View File

@ -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');

View File

@ -5,22 +5,56 @@
* @copyright 2022 opencart.cn - All Rights Reserved
* @link http://www.guangdawangluo.com
* @author TL <mengwb@opencart.cn>
* @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('删除成功!');
}
}

View File

@ -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');