2015-06-11 3 views
0

У меня есть дата печенья, хранящаяся в сериализованном массиве, который я хотел бы получить с помощью шаблона Blade.Вывод файла cookie в Laravel-5/Blade

Если значение cookie установлено в соответствии с текущим именем поля, я хочу его показать. В настоящее время я использую следующий код, но я не уверен, как получить доступ к значению массива.

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

Значения печенья myBookingDetails выглядит следующим образом:

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')), но тогда как мне получить доступ к массиву «name» – V4n1ll4

+0

См. Обновленный ответ. – chanafdo

+0

Это делается непосредственно в шаблоне Blade или в моем контроллере? Невозможно ли вывести его непосредственно в шаблон? – V4n1ll4

0

Не знаю, разрешил ли предыдущий ответ вашу загадку, но я мог бы оказать некоторую помощь.

Я сражался с аналогичным случаем. Кажется, что в шаблоне - в Laravel 5.1 - я не мог получить доступ непосредственно к печенью:

Cookie::get('cookiename') просто возвращает нуль cookie('cookiename') Возвращает Symfony \ Component \ HttpFoundation \ Cookie, но $cookie->getValue() возвращается (снова) null.

Старые добрые $_COOKIE['cookiename'] возвращают правый печенье, поэтому вы можете просто пойти с unserialize($_COOKIE['myBookingDetails'])['name'];!

PS: Должно быть лучше обработать файлы cookie в контроллере и передать нормальную переменную виду!

Смежные вопросы