мой файл cookie нулевой! Но я не знаю:
use Illuminate\Support\Facades\Cookie;
HomeController:
public function index()
{
Cookie::queue('currentLang', 'heb', 999999999);
$cat1 = $this->categoryRepo->findCategoryById(1);
$lastPosts = $this->blogPosts->listBlogPosts(array('*'),'id','desc')->take(3);
return view('front.index', compact('cat1','lastPosts'));
}
теперь я хочу получить этот ключ от другого контроллера:
LoginController:
public function showLoginForm()
{
dd(Cookie::get('currentLang'));
return view('auth.login');
}
но он возвращает ноль! Я работаю на localhost.
Cookie::queue(... используется для прикрепления файла cookie к вашему ответу (альтернативный вариант) согласно документации. Если вы посмотрите заголовки ответов, то заметите, что Set-Cookie: currentLang=someencryptedvalue действительно существует. Кроме того, поскольку вы создали файл cookie с помощью Laravel, Laravel знает, как получить этот файл cookie, проблема не связана с шифрованием.






Cookie::queue(... используется для прикрепления файла cookie к вашему ответу (альтернативный вариант) согласно документации. Если вы посмотрите заголовки ответов, то заметите, что Set-Cookie: currentLang=someencryptedvalue действительно существует.
Я создал несколько прототипов конечных точек, чтобы проиллюстрировать создание и удаление файлов cookie:
use Illuminate\Support\Facades\Cookie;
Route::get('/wont-clear-cookie', function() {
Cookie::forget('currentLang');
return redirect()->to('/get-cookie');
});
Route::get('/clear-cookie', function() {
Cookie::queue(Cookie::forget('currentLang'));
return redirect()->to('/get-cookie');
});
Route::get('/set-cookie', function() {
Cookie::queue('currentLang', 'heb', 999999999);
return redirect()->to('/get-cookie');
});
Route::get('/get-cookie', function() {
dump(Cookie::get('currentLang'));
dd(request()->cookie('currentLang'));
});
Вышеупомянутые конечные точки должны быть размещены в web.php.
Также убедитесь, что ваша группа промежуточного программного обеспечения web правильно настроена в App\Http\Kernal.php:
'web' => [
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
// \Illuminate\Session\Middleware\AuthenticateSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\VerifyCsrfToken::class,
\Illuminate\Routing\Middleware\SubstituteBindings::class,
],
он возвращает значение nul.
убедитесь, что ваши маршруты находятся внутри вашей группы промежуточного программного обеспечения Интернета и что группа промежуточного программного обеспечения web настроена правильно.
см. этот stackoverflow.com/questions/39052612/… может вам помочь. Проблема может быть связана с шифрованием файлов cookie с помощью laravel