2011-07-27 12 views
0

私はCakePHPに「アーキテクチャ上の」問題があります。CakePHPでの効率的なページ設定

私はクエリをページ付けする必要がありますが、これは簡単だと思いますが、$ paginate配列とページ分割メソッドを使用しますが、多くの制限があります。

私のコントローラの多くのメソッドでは、同じモデルの異なるフィールドを返さなければならず、どちらの場合もページ付けする必要があります。この事実から、$ paginate配列のすべてのフィールドについて言及する必要があります。このフィールドが必要ない場合は、パフォーマンスが低下する可能性があります。

どのようにして、さまざまなメソッドに対して違うページ設定ルールをきれいに設定できますか?

(私は別の配列を使用して考えて、$に割り当てるランタイム内の特定の配列をページ付けが、私はそれを行うには、「oficial方法」があるかどうかを知りたい)事前に

感謝:)。

答えて

1

テーブルに大量のフィールドがない場合は、ケーキにそれらのすべてを照会させてもいいと思います。パフォーマンスはそれほど異なるはずはありません。

あなたは別のページネーションのセットを指定することができます。

var $paginate = array(
    'Recipe' => array (...), 
    'Author' => array (...) 
); 

その後、$data = $this->paginate('Recipe');

http://book.cakephp.org/view/1232/Controller-Setup

0

これはあなたがすでにやっていることであるならば、私は知らないが、私は思いますこれはすでに十分にきれいです:

あなたはすべてのメソッドで使用しようとしているフィールドがある場合

あなたも、このようにそれを行うことができます:

var $paginate = array (
    'fields' => array('always_need_this', 'also_need_this_always',) 
); 
function foo() { 
    array_push($this->paginate['fields'], 'only_in_foo', 'also_only_in_foo'); 
    /* rest of the method */ 
} 
function bar() { 
    array_push($this->paginate['fields'], 'only_in_bar', 'also_only_in_bar'); 
    /* rest of the method */ 
} 
関連する問題