1

ビューとして使用しているときに、ページネーション (Paginator->sort()) で正常に機能しているテーブルからのビューがあります。しかし、要素として変更すると、エラーがスローされます。

Warning (2): array_merge() [function.array-merge]: Argument #1 is not an array [CORE\cake\libs\view\helpers\paginator.php, line 194]<br>
Warning (2): array_merge() [function.array-merge]: Argument #2 is not an array [CORE\cake\libs\view\helpers\paginator.php, line 194]<br>
Warning (2): array_merge() [function.array-merge]: Argument #1 is not an array [CORE\cake\libs\view\helpers\paginator.php, line 378]<br>
Warning (2): array_merge() [function.array-merge]: Argument #2 is not an array [CORE\cake\libs\view\helpers\paginator.php, line 378]<br>

コードは以前とまったく同じですが、もちろん一部のコードを次のように変更しました。

モデル:次のステートメントを追加

var $helpers = array('Paginator');

コントローラー: 要素に値を返すように paginate 句を変更しました

return $collaborations = $this->paginate('Collaboration');

要素: 要素の先頭にリクエスト アクションを追加し、他の行はパリネーション ソートを呼び出す方法です

<?php $collaborations = $this->requestAction('/collaborations/calendar'); ?>
<?php echo $this->Paginator->sort('Pvm','Collaboration.start_date'); ?>

ページネーションの並べ替え機能が機能しないのはなぜですか? 私は何か他のものを宣言していますか?私はいくつかのグーグルを行いましたが、ページネーターがデータモデル(どこかで宣言される)を表示/検索するのに問題があるか、いくつかのパラメーターを割り当てる必要があることがわかりましたか?

前もって感謝します :)

4

2 に答える 2

0

Cakephp の本を確認してください: http://book.cakephp.org/1.3/en/view/1231/Pagination

コントローラーで paginate 変数を設定してから、メソッド paginate を使用してビューにデータを入力する必要があります。

ヘルパーは、モデルではなくコントローラーで構成する必要があります。

たとえば、コントローラ クラスは次のようになります。

class ColaborationController extends AppController {
    var $paginate = array( 'limit'=>25, 'order'=>array('Colaboration.start_date'=>'asc'));

    function some_action() {
        $this->set('collaborations', $this->paginate('Collaboration'));
    }
}

そしてあなたの見解:

<?php echo $this->Paginator->sort('Pvm','collaboration.start_date'); ?>
于 2012-02-05T18:58:38.130 に答える
0

この問題を解決しようとして退屈しました。アプリケーションロジック全体を変更したところ、正常に動作するようになりました。要素のページネーションに問題はなく (ページネーション要素はまったくありません)、requestAction メソッドを使用する必要はありません。パフォーマンスに良くないため、避ける必要があることを読みました。助けてくれてありがとう:)

于 2012-02-06T16:40:49.913 に答える