2

したがって、ビューが 1 つあり、同じモデルで条件が異なる 2 つのテーブルのページネーションを行う必要があります。例えば:

Task Model --> 1st pagination --just paginate task assigned to me
           --> 2nd pagination --paginate task created by me

とにかくこれを行うことはありますか?

    public function dashboard() {
        $this->layout = 'user';
        $limit = 5;
//debug($this->Session->read('Auth.User.id'));
//debug($this->Session->read('Auth.User.group_id'));

        //My Task Pagination
        $this->paginate = array(
            'Project' => array(
                'limit' => $limit,
                //'contain' => array('ProjectReminderUser.user_id =' . $this->Session->read('Auth.User.id')),
                'conditions' => array(
                    'User.group_id' => $this->Session->read('Auth.User.group_id'),
                    //'ProjectReminderUser.user_id' => $this->Session->read('Auth.User.id'),
                ),
            )
        );
        $this->set('myTasks', $this->paginate('Project'));  
        //debug($this->paginate('Project'));

        //Group Task Pagination
        $this->paginate = array(
            'Project' => array(
                'limit' => $limit,
                //'contain' => array('ProjectReminderUser.user_id =' . $this->Session->read('Auth.User.id')),
                'conditions' => array(
                    'User.group_id' => $this->Session->read('Auth.User.group_id'),
                    //'ProjectReminderUser.user_id' => $this->Session->read('Auth.User.id'),
                ),
            )
        );
        $this->set('groupTasks', $this->paginate('Project'));   
        //debug($this->paginate('Project'));        
    }

このコードはまだ条件を区別していません。しかし、私はこれをどのように行うことができるか疑問に思っていました。現在のコードでは、ページを並べ替えたり移動したりするたびに、同じモデルのために両方のテーブルに対して同じことが行われるためです。

4

3 に答える 3

1

数日前に同じ問題に直面しました。私の経験では、http: //deadlytechnology.com/php/paginate-multiple-data-sets/ から今までの最良の解決策を見つけました。これは非常に古い投稿ですが、これはすべてのタイプの複数のページネーション、つまり同じモデルの複数のページネーション、複数のモデルの同じビューのページネーションなどに最適なソリューションだと思います.

解決策: CakePHP を使用して、通常どおり 1 つのページネーション ロード。もう 1 つは、任意のコントローラーからの別のアクションから AJAX 要求を使用してロードします。両方のページネーションに AJAX ページネーションを使用すると、インタラクティブで意味のあるものになります。

于 2014-03-02T18:32:37.997 に答える
0

Model::find() params 'page' と limit で確認できます:

例:

$params=array('conditions'=>$conditions,'limit'=>$limitByPage,'page'=>$page );
$this->Model->find('all',$params);

$limitByPage と $page を設定するだけです。ページ数を知りたい場合は、「count」/ $limitByPage で見つけてください。

于 2013-12-03T14:47:38.407 に答える
0

複数の iframe を使用して、ページネーションを個別に読み込むことができます。遅れていることは承知していますが、この問題を経験している人々を助けることができれば幸いです.

于 2014-03-16T04:41:07.200 に答える