2015-06-11 40 views
0

我將cookie日期存儲在序列化陣列中,我想通過刀片模板訪問它。在Laravel-5/Blade中輸出cookie

如果cookie值設置爲與當前字段名匹配,那麼我想顯示它。我目前使用下面的代碼,但我不知道如何訪問數組值。

{{{ Cookie::has('myBookingDetails') ? Cookie::get('myBookingDetails') : old('name') }}} 

的myBookingDetails cookie的值是這樣的:

a:4:{s:4:"name";s:13:"Joe Bloggs";s:5:"email";s:29:"[email protected]";s:5:"phone";s:11:"0777777777";s:3:"reg";s:6:"123456";} 

如何才能獲得通過之刃 「」 值?

回答

0

數據被序列化。您需要使用unserialize()函數來獲取數據。

$data = unserialize(Cookie::get('myBookingDetails')); 

$name = $data['name'] 

使用前檢查是否存在。

+0

是的我已經嘗試unserialize(Cookie :: get('myBookingDetails')),但是如何訪問數組「名稱」 – V4n1ll4

+0

查看更新的答案。 – chanafdo

+0

這是直接在Blade模板還是在我的控制器中完成的?有沒有辦法直接輸出到模板? – V4n1ll4

0

不知道以前的答案是否解決了你的謎團,但我可以給予一些幫助。

我與類似的情況下打了一架。看來,在模板 - 在laravel 5.1 - 我不能直接訪問的cookie:

Cookie::get('cookiename')簡單地返回null cookie('cookiename')回報的Symfony \分量\ HttpFoundation \餅乾,但$cookie->getValue()返回(再次)null

好的舊$_COOKIE['cookiename']返回正確的cookie,所以你可以簡單地去unserialize($_COOKIE['myBookingDetails'])['name'];

PS:應該更好地在控制器中處理cookie並將正常變量傳遞給視圖!