【问题标题】:CakePHP find('threaded') paginationCakePHP find('threaded') 分页
【发布时间】:2009-12-23 11:43:32
【问题描述】:

我是 cakePHP 的新手,现在我必须进行分页。

cmets 表有一个 parent_id 并且线程查询工作正常,所以现在我想对结果进行分页。

我的问题是有限的 sql 查询会影响所有检索到的 cmets,我只想限制父级的 cmets,因为另一方面,它会将回复排除在查询之外。

希望我说得清楚,你能帮助我。

谢谢。

【问题讨论】:

  • 恐怕我不明白你的问题。请澄清“我的问题是有限的......”这句话,我会尽力提供帮助。提供基本模型结构(hasOne 等),并包括您期望的数组结构,以及它为您提供的数组结构。谢谢!
  • 受限是指我想将查询限制为 10 个结果,但此限制也会影响回复。

标签: cakephp pagination threaded-comments


【解决方案1】:

用途:

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

然后在find:

$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。这样限制只会影响父母

【讨论】:

    【解决方案2】:

    您可能只需要查询父母(主题?),然后再查询其下的每棵树。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-02-14
      • 2013-05-09
      • 1970-01-01
      • 1970-01-01
      • 2012-05-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多