注销后,Laravel区域设置中间件不适用于所有路由和区域设置会话

G N*_*yam 5 locale laravel-5 laravel-middleware

我正在使用多语言网站.我已经为locale创建了一个中间件.Locale在Home,Login和Registration视图下工作正常.但是,它不与工作auth/passwords/reset.blade.phpauth/passwords/email.blade.php.当我按下注销时,Locale会话会破坏.

Laravel 5.3 routes/web.php

Route::group(['middleware' => 'locale'], function(){
    Route::get('/', function () {
    return view('welcome');
});

Auth::routes();

Route::get('/home', 'HomeController@index');

});

Route::get('setlocale/{locale}', function($locale){
     \Session::put('locale', $locale);
     return back();
}); 
Run Code Online (Sandbox Code Playgroud)

中间件:locale

<?php

namespace Onebook\Http\Middleware;

use Closure;
use Illuminate\Support\Facades\Session;
use Illuminate\Support\Facades\Config;

class Locale
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {   
        $locale = 'en';
        if(Session::has('locale')){
            $locale = Session::get('locale');
        }
        else{
            $locale = Config::get('app.locale');
        }
        \App::setlocale($locale);
        return $next($request);
    }
}
Run Code Online (Sandbox Code Playgroud)