use Symfony\Component\HttpFoundation\Request;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\Security\Core\SecurityContext;
use ESS\UserBundle\Entity\User;
use ESS\UserBundle\Form\UserType;
use ESS\UserBundle\Form\UserEdit;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\Cookie;
$user_cookie = new Cookie('user','admin',12000);
$code_cookie = new Cookie('ccode','1234',12000);
$response = new Response();
$response->headers->setCookie($user_cookie);
$response->headers->setCookie($code_cookie);
print_r($_COOKIE);
exit;
我已使用此代码设置Cookie。但是,它没有设定。想不清楚为什么??
我的浏览器启用了Cookie。
答案 0 :(得分:5)
我建议您使用https://github.com/oodle/KrumoBundle测试代码 它最适合调试对象元素,如cookie。
我同意Tomasz的观点,“对象应该设置你的cookie,但是在服务器的下一个请求中。”部分答案。但你应该使用$ response-> sendHeaders();而不是返回操作。 我得到了干净的白页,返回$ response;
<强>代码:强>
$user_cookie = new Cookie('user','admin',12000);
$code_cookie = new Cookie('ccode','1234',12000);
$response = new Response();
$response->headers->setCookie($user_cookie);
$response->headers->setCookie($code_cookie);
$response->sendHeaders();
//之后,您可以返回与动作相关的树枝或重定向某处。
答案 1 :(得分:0)
在此代码中,您的$_COOKIE
无法设置,因为在将响应发送回用户时设置了Response
。
因此,在执行代码并返回$user_cookie = new Cookie('user','admin',12000);
$code_cookie = new Cookie('ccode','1234',12000);
$response = new Response();
$response->headers->setCookie($user_cookie);
$response->headers->setCookie($code_cookie);
return $response;
对象后,您的Cookie应该设置,但在 next 请求服务器。
{{1}}