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