cakephp cookie上的数组到字符串转换错误

时间:2014-03-01 07:57:34

标签: php arrays cakephp cookies

我正在尝试将一个关联数组设置为cakephp中的cookie变量。该数组是:

$recent_designers = array(
"0"=>
    array(
        "name" => "Hello",
        ),
"1"=>
    array(
        "name" => "Hi",    
        )

);

并将此数组设置为Cookie recent_designers

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

但我收到了通知 Notice (8): Array to string conversion [CORE\cake\libs\controller\components\cookie.php, line 458]文件上的ctp!如果我的数组采用以下格式:

$recent_designers = array(
                        "0"=>"Hello","1"=>"Hi","2"=>"Namaste"
                    );

我没有得到任何错误。

1 个答案:

答案 0 :(得分:0)

你可以使用cookie :: write在cakephp中存储一个普通数组,但不能在嵌套数组中存储。

http://book.cakephp.org/2.0/en/core-libraries/components/cookie.html#using-the-component

传递3个元素的数组与保存3个cookie相同

这样做

$recent_designers = array(
    "0"=>"Hello",
    "1"=>"Hi",
    "2"=>"Namaste"
);

$this->Cookie->write('recent_designers', $recent_designers);

相同
$this->Cookie->write('recent_designers.0', 'Hello');
$this->Cookie->write('recent_designers.1', 'Hi');
$this->Cookie->write('recent_designers.2', 'Namaste');