Php cookie在两次单击链接或刷新页面Laravel后设置新值

Php cookie在两次单击链接或刷新页面Laravel后设置新值,php,laravel,Php,Laravel,我有一个多语言站点,我必须将从菜单中选择的语言保存在Cookie中,以便在其他页面中使用,但我的问题是,在两次单击语言链接后,该功能仍然有效。我使用中间件实现该功能,代码如下所示: 中间件: public function handle($request, Closure $next) { if ($request->lang){ Cookie::queue('lang',$request->lang); }el

我有一个多语言站点,我必须将从菜单中选择的语言保存在Cookie中,以便在其他页面中使用,但我的问题是,在两次单击语言链接后,该功能仍然有效。我使用中间件实现该功能,代码如下所示:

中间件:

    public function handle($request, Closure $next)
    {
        if ($request->lang){
            Cookie::queue('lang',$request->lang);
        }else{
            Cookie::queue('lang','fa');
        }

        $lang=$request->lang ? $request->lang : "fa";
        app()->setLocale($lang);

        return $next($request);
    }
}
路线:

Route::group(['middleware'=>[\App\Http\Middleware\SetDefaultLocaleForUrls::class]],function (){
    Route::get('/{lang?}','Welcomecontroller@index')->name('lang');
    Route::get('/{lang?}/text','Welcomecontroller@text')->name('text');
});
刀片文件中的链接:

  <a href="{{route('lang',['en'])}}">en</a>
    <a href="{{route('lang',['ru'])}}">ru</a>
    <a href="{{route('lang')}}">fa</a>
    <a href="{{route('text',[Cookie::get('lang')])}}">text Page</a>

当我第一次点击链接时,cookie值是过去的值,当我再次点击时,cookie值变为新的,我的代码问题在哪里