无处不在,我的 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 ,则会在 Reditect ::之前创建cookie本身(可以 dd($ cookie))到()。我得到了这个结果:
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)
}
但是,当重定向到 / cookieget 时,我得到了 NULL 结果。
浏览器(谷歌浏览器)没有任何“foo”cookie。
我在其他Laravel项目中尝试过相同的代码并且工作正常。我不记得改变任何可能破坏框架的东西。我还更新了框架(到4.2.8),我得到了相同的结果。
感谢您的帮助。
答案 0 :(得分:0)
已解决:显然,我的routes.php文件就是问题所在。它可能在某处有一些“奇怪”的白色字符,因此cookie(因此会话)永远不会被创建。我刚刚创建了一个新的routes.php文件,现在一切正常。