在Laravel 5.2之前,我有一个小片段来获取存储在cookie中的值:
在我看来:
@if(!Cookie::has('colorTheme'))
<?php $colortheme = 1; ?>
@else
<?php $colortheme = Cookie::get('colorTheme'); ?>
@endif
现在这些方法不起作用。当我在L5.2中使用此片段时
$cookie_colorTheme = request()->cookie('colorTheme','1');
@if(!isset($cookie_colorTheme))
<?php $cookie_colorTheme = '1'; ?>
@endif
<link rel="stylesheet" class='a' id='colortheme' href="{{asset('css/colortheme_'.$cookie_colorTheme.'.css')}}">
它也不起作用,因为cookie不在请求中 - 它已存储在用户的计算机上。
如何在Laravel 5.2中阅读cookie
如果找不到cookie,我该如何设置默认值
谢谢!
答案 0 :(得分:1)
您的代码看起来不错,因此Cookie可能只是空的。尝试使用dd($_COOKIE)
或类似内容来了解正在发生的事情。
要设置默认值,您可以执行以下操作:
{{ $value = $request->cookie('name') ? $request->cookie('name') : 'default value' }}
或者您可以尝试在Blade模板中执行this:
{{ $request->cookie('name') or 'default value' }}