cook ie устанавливает новое значение после двойного нажатия на ссылку или refre sh page Laravel - PullRequest
1 голос
/ 01 февраля 2020

У меня есть многоязыковой сайт, и я должен сохранить выбранный 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 меняется на новое, где моя проблема с кодом?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...