1

シンプルな CakePHP アプリを作成したばかりで、レコードのページ分割方法をカスタマイズしようとしています。コントローラーに次のアクションがあります。

public function index() {
    $this->Recipe->recursive = 0;
    $this->set('recipes', $this->Recipe->paginate());
}

これは、デフォルトのページネーションでうまく機能します。$paginate同じコントローラーで呼び出されるクラス プロパティを使用して、返される行の量とその順序をカスタマイズしようとしています。

public $paginate = array(
    'limit' => 1,
    'order' => array(
        'Recipe.title' => 'asc'
    )
);

しかし、それはまったく効果がありません。結果には、既定の制限と並べ替え順序が引き続き適用されます。私も$this->paginate自分のアクションで設定しようとしましたが、これも無視されるようです:

public function index() {
    $this->paginate = array(
        'limit' => 1,
        'order' => array(
            'Recipe.title' => 'asc'
        )
    );
    $this->set('recipes', $this->Paginator->paginate());
}

設定しているページネーション オプションを Cake が無視する原因は何ですか? 私が気付いていないアプリケーションをベイクすると、何かおかしなことをするのでしょうか?

4

1 に答える 1

2

試す

public function index() {
    $this->Paginator->settings = array(
        'limit' => 1,
        'order' => array(
            'Recipe.title' => 'asc'
        )
    );
    $this->set('recipes', $this->Paginator->paginate());
}
于 2013-08-26T18:26:01.600 に答える