CakePHP读取多个点的Cookie

时间:2014-02-17 09:21:48

标签: cookies cakephp-2.0

我正在使用CakePHP开发一个网站,目前正在努力使用cookie。 问题是当我用多个点写cookie时,比如,

$this->Cookie->write("Figure.1.id",$figureId);
$this->Cookie->write("Figure.1.name",$figureName);`

然后读取,cakePHP不返回嵌套数组但返回

array(
    '1.id' => '82',
    '1.name' => '1'
)

我期待像

这样的东西
array(
    (int) 1 => array(
         'id'=>'82',
         'name'=>'1'
    )
)

实际上,在我写完之后,我第一次看不到结果。但是从第二次开始,结果就是这样。你知道发生了什么吗?

1 个答案:

答案 0 :(得分:0)

我担心它看起来不像是支持多个点。如果你看一下CookieComponent(http://api.cakephp.org/2.4/source-class-CookieComponent.html#256-289)的read()方法,你会看到:

277:         if (strpos($key, '.') !== false) {
278:             $names = explode('.', $key, 2);
279:             $key = $names[0];
280:         }

并告知explode()方法将cookie的名称分解为最多两个部分。

您可能最好在保存之前序列化要存储的数据,然后在阅读后进行反序列化,如下所示:http://abakalidis.blogspot.co.uk/2011/11/cakephp-storing-multi-dimentional.html