Как сделать пагинацию результата в CakePHP - PullRequest
0 голосов
/ 07 июля 2010

Я использую CakePHP для своего проекта, в этом здесь я получаю результат из запроса на присоединение, но этим я хочу сделать разбивку на этот результат, используя мой способ, это невозможно.

Этомой код:

$id= $this->Session->read('id');
$this->layout='ui_defualt';

$options['joins'] = array(array('table' => 'fj_bounty_watches','conditions' => array('fj_bounty_watches.nBountyID = FjBounty.id')));

$options['conditions'] = array('fj_bounty_watches.nHeadHunterID' =>$id);

$watchedbounty = $this->FjBounty->find('all', $options); 

Используя это, я получаю результат в виде массива.Он не выполняет разбиение на страницы.

Как можно получить разбиение на страницы для этого результата?

Ответы [ 2 ]

0 голосов
/ 13 июля 2011

Вы можете установить параметры нумерации страниц так же, как при использовании метода find:

Контроллер YourModel:

$this->paginate['YourModel'] = array(   'recursive' => -1,
                                        'fields'    => array('YourModel.*','OtherModel.*'),
                                        'joins'     => $joins, // an array of joins
                                        'order'     => array('YourModel.creation'),
                                        'conditions'=> $conditions, 
                                        'limit'     => 10
                                );
$this->set('myPaginatedList', $this->paginate('YourModel'));

, а также, я вижу, что ваше соединениемассив не совсем соблюдает соглашение об именах, он должен выглядеть примерно так:

array(  'table' => 'fj_bounty_watches',
        'alias' => 'FjBountyWatches',
        'type' => 'INNER', // or left, or right
        'conditions' => array('FjBountyWatches.nBountyID = FjBounty.id'))

Удачи

0 голосов
/ 04 августа 2010

Вы должны получить постраничные результаты, если используете правильную настройку:

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

...