2011-01-31 6 views
0

私は問題なくプロジェクトにmemcacheを使用しています。 find()ベースのクエリとカスタムクエリではうまくいきます。memcachedとcakephpネイティブページネーションの使い方は?

しかし、ページ分割された結果をmemcacheでどのように使用できますか? 私は私がmemcacheのに入れしようとしていたコードのブロックを次ています

$this->paginate = array('order'=>'order_by ASC','limit' => 1000); $this->Category->recursive = 2; $Categories = $this->paginate('Category',array('id'=>5));

私はキャッシュに変数$カテゴリーを入れたとしても、それは動作しません。 ご意見、ご了承ください。

ありがとうございます。 Vikas

+0

なぜキャッシュページネーションですか?別のフィールドで並べ替えたり、別の注文で並べ替えるとどうなりますか? 2つのページに20行しかない10個のフィールドは、キャッシュの2 X 2 X 10バージョンを提供します(もしiveがいくつかの異なる方法を見逃さなかった場合) – dogmatic69

+0

ページロードの速度を上げるためにキャッシュが必要です。すべてのページで数千のレコードを取得し、読み込みに多くの時間を費やしています。 –

+0

@ dogmatic69、私は並べ替えを使用していません(ハードコーディングされているので)問題ではありません。 –

答えて

0
$tmp = sha1($this->params['url']['url']); 
    $something = Cache::read('something_'.$tmp); 
    if(!$something){ 
    $something = $this->paginate(); 
    } 
    Cache::write($something, 'something_'.$tmp); 

    $this->set(compact('something')); 
+0

を使用することができます_ を使用することができますが、私はそれを見つけるために怠惰に手を取ることができません:D – dogmatic69

+0

返信ありがとう、私はすでにページのURLとページ番号を使用してキャッシュを設定しようとしました。それは別の問題を引き起こす。もし$ this-> paginate();コントローラ内で呼び出されていない(条件付きのため)ので、ビューファイル内の改ページヘルパーは機能しません。私がここで見る唯一の方法は、自分のページネーションクラスを書くことです。モデルを見て、すべてのデータベース関係をフェッチするケーキの能力から利益を得ることはありません。 –

関連する問題