CakePHP find('резьбовое') разбиение на страницы

Я новичок в cakePHP и дошел до того, что мне нужно сделать нумерацию страниц.

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

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

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

Благодарю.

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'
            ));

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

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

Другие вопросы по тегам