У меня есть многоязыковой сайт, и я должен сохранить выбранный lang из меню в Cook ie для использования на других страницах, но моя проблема в том, что это работает после того, как дважды щелкнуть ссылку lang, я использую промежуточное программное обеспечение для этого, и коды пришли следующее:
middleware:
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>
при первом нажатии на ссылку значение cook ie является прошлым значением, и когда я снова нажимаю, значение cook ie меняется на новое, где моя проблема с кодом?