突然,我的Laravel(4.2)应用程序停止了创建cookie(因此,它停止了与这些cookie链接会话)。我正在运行我在另一篇文章中看到的这个测试:
// routes.php
Route::get('cookieset', function(){
$cookie = Cookie::make('foo', 'bar', 60);
return Redirect::to('cookieget')->withCookie($cookie);
});
Route::get('cookieget', function(){
dd(Cookie::get('foo'));
});
因此,如果我在浏览器中打开/cookieset,就会创建cookie本身(可以在Reditect::to()之前dd($cookie) 然而,当重定向到/cookieget时,我得到了NULL的结果。 浏览器(谷歌浏览器)没有任何"foo"cookie。 我在其他Laravel项目中尝试过同样的代码,效果很好。我不记得更改过任何可能破坏框架的内容。我还更新了框架(到4.2.8),得到了相同的结果。 我感谢你的帮助。 object(Symfony'Component'HttpFoundation'Cookie)#165 (7) {
["name":protected]=> string(3) "foo"
["value":protected]=> string(3) "bar"
["domain":protected]=> NULL
["expire":protected]=> int(1409694104)
["path":protected]=> string(1) "/"
["secure":protected]=> bool(false)
["httpOnly":protected]=> bool(true)
}
解决:显然,我的routes.php文件就是问题所在。它可能在某个地方有一些"奇怪"的白色字符,所以cookie(因此会话)从未创建。我刚刚创建了一个新的routes.php文件,现在一切都很好。