Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在COOKIES数组中存储项目?_Php_Arrays_Cakephp_Cookies - Fatal编程技术网

Php 如何在COOKIES数组中存储项目?

Php 如何在COOKIES数组中存储项目?,php,arrays,cakephp,cookies,Php,Arrays,Cakephp,Cookies,我试图保存用户最近在cakephp应用程序中查看的设计师ID。我的操作view()如下所示: $this->Cookie->write('designers', $id); $cookies = $this->Cookie->read('designers'); $this->set("designer_id", $cookies); 而视图.ctp是 <h2>COOKIE</h2> <p>Designer ID from c

我试图保存用户最近在
cakephp
应用程序中查看的设计师ID。我的操作
view()
如下所示:

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

<h2>COOKIE</h2>
<p>Designer ID from cookie: 
    <?php
        echo $designer_id;
    ?>
</p>
但是数组只包含我当前正在查看的
id

试试这个:

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

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

准确,因为你每次都在擦除它

您需要取回cookie以重写它:

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

但是数组只包含我当前查看的id。您的意思是,您只将id保存到数组中,以便它只在查看页面中显示id。你到底在哪里?假设我正在查看一个id=1的设计器,数组包含元素1。我再次查看id为2的设计器,数组包含元素2,但这次我需要数组(1,2)。它是相同的:,
var\u dump($\u COOKIE)
没有显示其中的变量
designers
!发生什么事了!使用此方法并序列化数组如何(如下所述)
$myarray = $this->Cookie->read('designers');
$myarray[] = $id;
$this->Cookie->write('designers', $myarray);