2016-07-25 97 views
0

我试图在ZF2控制器中创建一个cookie。当我在“hotelpage”上时,控制器应该创建一个包含酒店价值的cookie。我需要根据我目前使用的hotelPage向cookie添加动态数据。我的代码sofar:如何创建一个对象数组并将其存储在一个cookie中

   $cookieData = $this->getRequest()->getCookie(); 
      if(empty($cookieData->recently_viewed)){ // cookie doesn't exists     
       // get data from hotel object 
       $recentlyViewedHotel = array('hotelId' => $hotel->id, 'hotelName' => $hotel->name); 
       array_push($hotels, $recentlyViewedHotel); 
       System::setCookie("recently_viewed", json_encode($hotels)); 
      } else{ // cookie already created, add more values to the cookie 
       $recentlyViewedHotel = array('hotelId' => $hotel->id, 'hotelName' => $hotel->name); 
       System::setCookie("recently_viewed", json_encode($hotels)); 
      } 

我得到的输出是一个总是被覆盖的对象的数组。谁能告诉我我做错了什么?

回答

0

通过查看代码并根据您所得到的输出结果,我认为问题在于当您的cookie已经存在时,您用于设置cookie的System::setCookie函数。如果cookie已经存在,尝试获取cookie的内容,json_decode它。将新值附加到对象中,然后使用更新的对象调用System::setCookie函数。

注:很明显,你需要做上述过程中,如果没有任何现有的API,你可以打电话到价值附加到现有的Cookie :)

干杯!

相关问题