[英]Why cookie of laravel is null - 5.7
我的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');
}
但它返回null! 我正在使用localhost。
根據文檔, 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
。
另外,請確保在App\\Http\\Kernal.php
正確配置了web
中間件組:
'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,
],
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.