后台用户语言设置

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) public function handle(Request $request, Closure $next)
{ {
$currentLocale = current_user()->locale; $currentLocale = current_user()->locale ?? 'en';
if (in_array($currentLocale, languages()->toArray())) { if (in_array($currentLocale, admin_languages())) {
App::setLocale($currentLocale); App::setLocale($currentLocale);
} else { } else {
App::setLocale('en'); App::setLocale('en');

View File

@ -5,22 +5,56 @@
* @copyright 2022 opencart.cn - All Rights Reserved * @copyright 2022 opencart.cn - All Rights Reserved
* @link http://www.guangdawangluo.com * @link http://www.guangdawangluo.com
* @author TL <mengwb@opencart.cn> * @author TL <mengwb@opencart.cn>
* @created 2022-08-04 16:21:14 * @created 2022-07-05 16:37:04
* @modified 2022-08-04 16:21:14 * @created 2022-07-05 16:37:04
*/ */
namespace Beike\Admin\Http\Controllers; namespace Beike\Admin\Http\Controllers;
use Beike\Repositories\LanguageRepo;
use Exception;
use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Redirect; use Illuminate\Support\Facades\Redirect;
class LanguageController extends Controller class LanguageController extends Controller
{ {
public function index($lang)
public function index()
{ {
if (in_array($lang, languages()->toArray())) { $languages = LanguageRepo::all();
current_user()->locale = $lang;
current_user()->save(); $data = [
} 'languages' => $languages,
return Redirect::back(); ];
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::delete('file_manager/directories', [Controllers\FileManagerController::class, 'destroyDirectories'])->name('file_manager.delete_directories');
Route::get('logout', [Controllers\LogoutController::class, 'index'])->name('logout.index'); 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_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'); Route::middleware('can:orders_show')->get('orders/{order}', [Controllers\OrderController::class, 'show'])->name('orders.show');