Laravel 5.2:如果设置了cookie,则通过刀片检索cookie也会返回null [英] Laravel 5.2: retrieving a cookie via blade returns null also if cookie is set
本文介绍了Laravel 5.2:如果设置了cookie,则通过刀片检索cookie也会返回null的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我通过Javascript设置了Cookie my_cookie
function createCookie(name, value, days) {
var expires;
if (days) {
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
expires = "; expires="+date.toUTCString();
}
else {
expires = "";
}
document.cookie = name+"="+value+expires+"; path=/";
}
....
createCookie('my_cookie', 1, 365);
....
通过Chrome Cookie检查器,我看到该cookie是用值1创建的.
我尝试过的Via Laravel Blade:
@if (Cookie::get('my_cookie') !== null) // or Cookie::get('my_cookie') == 1 or Cookie::get('my_cookie') == '1'
<p>set</p>
@else
<p>unset</p>
@endif
写下unset
@if (request()->cookie('my_cookie') == '1') // or @if (request()->cookie('my_cookie') == 1)
<p>set</p>
@else
<p>unset</p>
@endif
结果始终为unset
.
解决方案
从评论中移出:只有laravel创建的cookie才能由laravel处理.尝试使用本机Cookie $ _COOKIE.或者尝试通过laravel然后通过dd($ _ COOKIE)创建cookie,您将发现它与本机PHP创建的cookie完全不同
I set a cookie my_cookie
via Javascript
function createCookie(name, value, days) {
var expires;
if (days) {
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
expires = "; expires="+date.toUTCString();
}
else {
expires = "";
}
document.cookie = name+"="+value+expires+"; path=/";
}
....
createCookie('my_cookie', 1, 365);
....
Via Chrome Cookie Inspector I see that the cookie is created with value 1.
Via Laravel Blade I tried:
@if (Cookie::get('my_cookie') !== null) // or Cookie::get('my_cookie') == 1 or Cookie::get('my_cookie') == '1'
<p>set</p>
@else
<p>unset</p>
@endif
that writes unset
@if (request()->cookie('my_cookie') == '1') // or @if (request()->cookie('my_cookie') == 1)
<p>set</p>
@else
<p>unset</p>
@endif
The result is always unset
.
解决方案
Move from comment: Only cookie created by laravel can handle by laravel. Try native cookie $_COOKIE. Or try create cookie by laravel then dd($_COOKIE) you'll see it totally different to cookie which created by native PHP
这篇关于Laravel 5.2:如果设置了cookie,则通过刀片检索cookie也会返回null的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文