2016-11-28 40 views
0

我試圖從Laravel 5.3中的中間件檢索一個cookie,但它看起來像$ request-> cookie('language')是空的。我猜測它只是在中間件運行後才設置的。在Laravel 5中間件中獲取cookie

我在某處閱讀我應該使用\ Cookie :: queued('language'),但它仍然是空的。

是我唯一的選擇使用$ _COOKIE變量?

回答

3

你什麼時候設置這個cookie?

請記住,Cookie存儲在瀏覽器中,因此用戶需要獲得響應才能稍後檢索cookie。

您應該能夠在Cookie成功發送給用戶的響應設置後獲取cookie。還請記住,如果您使用dd(),則不會讓cookie被創建,因爲它會跳過所有發送給用戶的cookie標頭。

嘗試從中間件獲取cookie可能會遇到的另一個問題是,它可能不會自動解密,因此您必須自己做。

實施例:

\Crypt::decrypt(Cookie::get('language')) 
+0

1爲被提到在中間件非自動解密,問題我解決使用溶液 – Brigo