我正在使用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'
)
)
实际上,在我写完之后,我第一次看不到结果。但是从第二次开始,结果就是这样。你知道发生了什么吗?
答案 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