我正在尝试在ZF2控制器中创建一个cookie。当我在" hotelPage"控制器应该创建一个具有酒店价值的cookie。我需要根据我目前所在的酒店页面动态添加数据到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 :(得分:0)
通过查看代码并根据您输出的内容,我认为问题出在System::setCookie
函数中,您可以使用它来设置cookie已经存在。如果cookie已经存在,请尝试获取cookie的内容json_decode
。将新值附加到对象中,然后使用更新的对象调用System::setCookie
函数。
注意:显然,您需要执行上述过程,如果没有任何现有API可以调用以将值附加到现有Cookie中:)
干杯!