后台语言切换

This commit is contained in:
TL 2022-08-04 09:53:55 +08:00
parent 455de33cbb
commit bd531e3514
5 changed files with 43 additions and 13 deletions

View File

@ -28,7 +28,7 @@ class Kernel extends HttpKernel
* @var array
*/
protected $middlewareGroups = [
'web' => [
'shop' => [
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
@ -39,6 +39,16 @@ class Kernel extends HttpKernel
\Illuminate\Routing\Middleware\SubstituteBindings::class,
\App\Http\Middleware\ShareViewData::class,
],
'admin' => [
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
\App\Http\Middleware\SetLocale::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\VerifyCsrfToken::class,
\Illuminate\Routing\Middleware\SubstituteBindings::class,
\App\Http\Middleware\ShareViewData::class,
],
'api' => [
// \Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class,

View File

@ -0,0 +1,30 @@
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\App;
class SetLocaleAdmin
{
/**
* Handle an incoming request.
*
* @param Request $request
* @param Closure $next
* @return mixed
*/
public function handle(Request $request, Closure $next)
{
$sessionLocale = session('locale');
if ($sessionLocale && in_array($sessionLocale, languages()->toArray())) {
App::setLocale($sessionLocale);
} else {
$configLocale = system_setting('base.locale');
App::setLocale($configLocale);
session(['locale' => $configLocale]);
}
return $next($request);
}
}

View File

@ -6,7 +6,7 @@ use Illuminate\Support\Facades\Route;
$adminName = admin_name();
Route::prefix($adminName)
->middleware(['web'])
->middleware(['admin'])
->name("{$adminName}.")
->group(function () {
Route::get('brands/autocomplete', [Controllers\BrandController::class, 'autocomplete'])->name('brands.autocomplete');

View File

@ -249,16 +249,6 @@ function languages(): Collection
return LanguageRepo::enabled()->pluck('code');
}
/**
* 当前语言ID
*
* @return int
*/
function current_language_id(): int
{
return 1;
}
/**
* 当前语言
*

View File

@ -25,7 +25,7 @@ use Beike\Shop\Http\Controllers\Account\ForgottenController;
Route::prefix('/')
->name('shop.')
->middleware(['web'])
->middleware(['shop'])
->group(function () {
Route::get('/', [HomeController::class, 'index'])->name('home.index');