cakephpでcookieComponent使用の注意点

cakeでショッピングカート機能みたいなものを開発する時に気づいたんですが。

結論から言うとcakephpのcookieComponentに2次元配列を渡すと2回目以降のアクセスだとNGとなります。

Cookie->name = 'hogeCookieName';  #名前を決めちゃいます。
        $this->Cookie->time =  "5 days"; #一応五日間で設定
        $this->Cookie->key = 'hogehogew!';#暗号化のキーーーーー
    }

   
    function add(){
	    
	#クッキーにデータを入れる
        $cookie_data = array(
                        "id1"=>array("name"=>"hoge1",
                                     "size"=>"SS"),
                        "id2"=>array("name"=>"hoge2",
                                     "size"=>"MM"),
                        "id3"=>array("name"=>"hoge3",
                                     "size"=>"LL"),
                                     );
	    
        $this->Cookie->write("hoge",$cookie_data);
        
	$this->setAction("view");
	}
	
	function view(){
            #クッキー内容を出力
	    print_r($this->Cookie->read("hoge")?$this->Cookie->read("hoge"):array());
	    exit;
	}

}

/cart/add を実行すると無事に

Array ( 
[id1] => Array ( [name] => hoge1 [size] => SS ) 
[id2] => Array ( [name] => hoge2 [size] => MM ) 
[id3] => Array ( [name] => hoge3 [size] => LL ) 
) 

↑これはクッキーに保存して、すぐアクセス(一回目)した場合。

でも
/cart/view を実行すると

Array ( 
[id1] => Array 
[id2] => Array 
[id3] => Array 
)

↑2次元配列の内容がなぜかArrayになっています。うまく保存した値を読めません。

原因は時間がある時ゆっくり調べますが、とりあえずクッキーに2次元配列を保存しないのを決めました。