后台语言切换

This commit is contained in:
TL 2022-08-04 10:12:13 +08:00
parent 230749b98b
commit 8b86d42793
5 changed files with 16 additions and 42 deletions

View File

@ -43,7 +43,7 @@ class Kernel extends HttpKernel
\App\Http\Middleware\EncryptCookies::class, \App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class, \Illuminate\Session\Middleware\StartSession::class,
\App\Http\Middleware\SetLocale::class, \App\Http\Middleware\SetLocaleAdmin::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class, \Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\VerifyCsrfToken::class, \App\Http\Middleware\VerifyCsrfToken::class,
\Illuminate\Routing\Middleware\SubstituteBindings::class, \Illuminate\Routing\Middleware\SubstituteBindings::class,

View File

@ -17,13 +17,11 @@ class SetLocaleAdmin
*/ */
public function handle(Request $request, Closure $next) public function handle(Request $request, Closure $next)
{ {
$sessionLocale = session('locale'); $currentLocale = current_user()->locale;
if ($sessionLocale && in_array($sessionLocale, languages()->toArray())) { if (in_array($currentLocale, languages()->toArray())) {
App::setLocale($sessionLocale); App::setLocale($currentLocale);
} else { } else {
$configLocale = system_setting('base.locale'); App::setLocale('en');
App::setLocale($configLocale);
session(['locale' => $configLocale]);
} }
return $next($request); return $next($request);
} }

View File

@ -5,47 +5,22 @@
* @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-07-05 16:37:04 * @created 2022-08-04 16:21:14
* @created 2022-07-05 16:37:04 * @modified 2022-08-04 16:21:14
*/ */
namespace Beike\Admin\Http\Controllers; namespace Beike\Admin\Http\Controllers;
use Beike\Repositories\LanguageRepo; use Illuminate\Support\Facades\Redirect;
use Illuminate\Http\Request;
class LanguageController extends Controller class LanguageController extends Controller
{ {
public function index($lang)
public function index()
{ {
$languages = LanguageRepo::all(); if (in_array($lang, languages()->toArray())) {
current_user()->locale = $lang;
$data = [ current_user()->save();
'languages' => $languages, }
]; return Redirect::back();
return view('admin::pages.languages.index', $data);
}
public function store(Request $request)
{
$language = LanguageRepo::create($request->only('name', 'code', 'locale', 'image', 'sort_order', 'status'));
return json_success('创建成功', $language);
}
public function update(Request $request, int $id)
{
$language = LanguageRepo::update($id, $request->only('name', 'code', 'locale', 'image', 'sort_order', 'status'));
return json_success('更新成功!', $language);
}
public function destroy(Request $request, int $currencyId)
{
CurrencyRepo::delete($currencyId);
return json_success('删除成功!');
} }
} }

View File

@ -12,5 +12,5 @@ class AdminUser extends AuthUser
const AUTH_GUARD = 'web_admin'; const AUTH_GUARD = 'web_admin';
protected $fillable = ['name', 'email', 'password', 'active']; protected $fillable = ['name', 'email', 'locale', 'password', 'active'];
} }

View File

@ -19,6 +19,7 @@ class CreateTables extends Migration
$table->string('email')->unique(); $table->string('email')->unique();
$table->string('password'); $table->string('password');
$table->boolean('active'); $table->boolean('active');
$table->string('locale')->default('');
$table->timestamps(); $table->timestamps();
}); });