2017-04-12 61 views
0

我现在面临的问题来设置cookie的symfony的设置cookie的,我在symfony的初学者,页空白的symfony的

我通过

use Symfony\Component\HttpFoundation\Response; 
use Symfony\Component\HttpFoundation\Cookie; 


$response = new Response(); 
$response->headers->setCookie(new Cookie("city", $city)); 
$response->send(); 

设置cookie的对表单POST它工作正常,但页面获取在表单POST上留空。

而且它的设置,我检查使用

if ($cookies->has('city')) { 
      $city = $cookies->get('city'); 
     } 

似乎与响应 - $> send()方法的问题;当我评论它的工作,但饼干没有设置。

在symfony中设置cookie是否正确?

我是问题的PHP 7.0.17,FPM阿帕奇

请帮助,如果你正试图把整个对象的城市你的cookie,你应该只发送ID来解决这个问题,

+0

可以尝试'返回$响应 - >发送();'或'$返回响应;'而不是'$响应 - > send();' – goto

+0

不工作:(这里是链接http://lab.instructiveride.com/en/ride/我在面对搜索问题城市。我想保持用户搜索Cookie,正常重新加载页面搜索后 –

回答

0

。对象可以在放入cookie的时间和读取值的时间之间改变。

$response = new Response(); 
$response->headers->setCookie(new Cookie("city", $city->getId())); 
$response->send(); 

在项目中,我使用这种方式没有任何问题

$response = $this->render(
    'your/twig.html.twig',[ 
     'param' => $param, 
    ] 
); 
$response->headers->setCookie(
    new Cookie(
     'name', 
     $value, //value 
     0,  //Expire 
     '/', //path 
     null, //domain 
     false, //Secure 
     false //httponly 
     ) 
    ); 

return $response;