2009-12-23 3 views
1

Я как бы новичок в cakePHP и добираюсь до момента, когда мне нужно делать разбивку на страницы.CakePHP find ('threaded') pagination

В таблице комментариев есть parent_id, и поток-запрос работает правильно, так что теперь я хочу разбивать на страницы результаты.

Моя проблема заключается в том, что ограниченный sql-запрос влияет на все полученные комментарии, и я только хочу ограничить родительские, потому что иначе он оставляет ответы вне запроса.

Надеюсь, я был бы ясен, и вы можете мне помочь.

Спасибо.

+1

Боюсь, я не понимаю ваш вопрос. Прошу пояснить предложение «Моя проблема - ограниченное ...», и я сделаю все возможное, чтобы помочь. Предоставьте базовую структуру модели (hasOne и т. Д.), А также включите структуру массива, которую вы ожидаете, а также структуру массива, которую она дает вам. Благодаря! –

+0

Ограниченный я имею в виду, что хочу ограничить запрос до 10 результатов, но этот лимит также влияет на ответы. – ozzysong

ответ

2

Использование:

var $hasMany = array(
      'ChildComment' => array(
        'className' => 'ProfileComment', 
        'foreignKey' => 'parent_id', 
        'conditions' => '', 
        'dependent' => true, 
        'fields' => '', 
        'order' => 'created ASC' 
      ) 
    ); 

     var $belongsTo = array(
      'ParentComment' => array(
        'className' => 'ProfileComment', 
        'foreignKey' => 'parent_id', 
        'conditions' => '', 
        'fields' => '', 
        'order' => '' 
      )); 

, а затем в находке:

$comments = $this->User->ProfileComment->find('all', array(
       'limit' => $this->incNumber, 
       'offset' => $page*$this->incNumber, 
       'conditions' => array('ProfileComment.parent_id' => null, 'ProfileComment.user_id' => $id), 
       'order' => 'ProfileComment.created DESC' 
      )); 

Вы должны настроить код для ваших целей, но Keypoint являются отношения и что условие находка имеет parent_id = ноль. Таким образом, предел влияет только на родителей

0

Возможно, вам нужно выполнить запрос только для родителей (темы?), А затем еще один запрос для каждого дерева ниже этого.