2017-04-12 56 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;