2014-02-28 18 views
0

我试图保存用户最近在cakephp应用程序中查看的设计师的ID。我的动作view()类似于如下:如何将项目存储在COOKIES数组中?

$this->Cookie->write('designers', $id); 
$cookies = $this->Cookie->read('designers'); 
$this->set("designer_id", $cookies); 

而且view.ctp

<h2>COOKIE</h2> 
<p>Designer ID from cookie: 
    <?php 
     echo $designer_id; 
    ?> 
</p> 

,并显示我已经检查了设计师的id。现在如何将我检查过的设计师的ID保存到cookie中?我试过如下:

$myarray = array(); 
$myarray[] = $id; 
$this->Cookie->write('designers', $myarray); 

但是该数组只包含id我目前正在查看!

+0

*但阵列只包含我当前正在查看的ID * ..你的意思是什么,你只保存ID到它,所以它将仅在视图页面中显示该ID。你准确地粘在哪里? – Rikesh

+0

假设我正在查看'id = 1'的设计器,数组包含元素1.同样,我正在查看id为2的设计器,该数组包含元素2,但这次我需要数组(1,2) – Nitish

回答

1

试试这个:

$this->Cookie->write('designers', serialize($myarray)); 

这:

$cookies = unserialize($this->Cookie->read('designers')); 
+0

我试过了,先生但它是一样的! – Nitish

1

精确,因为你每次删除它。

你需要找回cookie来重写一遍:

$myarray = $this->Cookie->read('designers'); 
$myarray[] = $id; 
$this->Cookie->write('designers', $myarray); 
+0

好吧,它和/ var_dump($ _ COOKIE)没有显示变量'designers'!发生了什么 ? ! – Nitish

+0

如何使用此方法并序列化数组(如下所述) –