質問: $this->paginate($query); Cache::write($cache_key, $data, '30minute'); } // ビューへセット $this->set(compact('data')); ``` ``` // この時のCache::read($cache_key, '30minute')の返り値 object(Cake\ORM\ResultSet) { 'items' => [] } ``` キャッシュファイルにはjson形式?でデータの配列が記述されている状態です。 追記 上記のように、readしたらからですが、キャッシュファイルには下記のようにクエリの結果が記述されています。 ですが、readすると空になってしまいます。 ページネーションを使ったキャッシュの場合このようになり、普通にfindした結果のキャッシュは読み出すことができます。 ``` "Cake\ORM\ResultSet":313912:{O:13:"SplFixedArray":40:{i:0;O:15:"Cake\ORM\Entity":11:{s:14:"^@*^@_properties";a:18:{s:2:"id";i:355470;s・・・・・ ```
回答: とりあえず30minuteの記述が謎ですね。 30分だけキャッシュしたいということなのかもしれませんが、そういう設定方法ではないと思います。 マニュアルを見れば全部やり方が載っているので解決すると思います。 https://book.cakephp.org/3.0/ja/core-libraries/caching.html