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);