こんにちは。オガリア開発チームの粂です。
CakePHPのバージョン:2.4
セッションのShopがitemsという配列を持っていて、そのうちの任意のitemのname、さらにすべてのitemのnameをひっぱってきたい場合を仮定します。少しはまりました。せっかくなのでブログに書いておきます。
まず、任意のitemのnameをひっぱってくる場合。
ここでは1番目のitemのnameを参照することを想定します。以下の書き方ではひっぱってこれない。
$this->Session->read('Shop.items[0].name');
こう書かないといけない。
$this->Session->read('Shop.items.0.name');
さらにすべてのitemのnameを配列として受け取りたい場合。
このケースでは、CakePHPのコアライブラリであるHashのextractメソッドが大変便利です。
Hash::extract($this->Session->read('Shop'), 'items.{n}.name');
肝はitems.{n}.nameという書き方でしょうか。extractメソッドは使いこなせるようになっておきたいですね。
最後までお読みいただきありがとうございました!