CakePHP分页赢得';t允许公共$paginate变量根据条件进行更改


CakePHP Pagination won't allow public $paginate variable to change depending on conditions

我使用的是CakePHP v2.4.1,我试图通过相同的控制器操作(索引)在同一页面上对两个独立的模型进行分页

我希望NewsPost在一个页面上进行分页,EventPost也在同一页面上单独进行分页。这是不是一种糟糕的做法,或者是否可以根据变量所在的模型设置条件,将$this->paginate变量更改为正确的paginate?

我的控制器看起来像这样:

public $uses = array(
    'NewsPost',
    'NewsPostComment',
    'EventPost',
    'EventPostComment'
);
public $paginate = array(
'limit' => 9,
'order' => array(
    'NewsPost.created' => 'desc'
), 
'recursive' => 1,
);
public function index() {       
  $this->paginate = array(
    'limit' => 1,
    'order' => array(
        'EventPost.created' => 'desc'
    ), 
    'recursive' => 1,
  ); 
$this->Paginator->settings = $this->paginate;
$newsPosts = $this->paginate('NewsPost');
$eventPosts = $this->EventPost->find('all');
$this->set(array('newsPosts' => $newsPosts, 'eventPosts' => $eventPosts));

内置的蛋糕分页器似乎不允许对单独的模型进行分页,或者我错了吗?

以下是分页视图:

<?php 
$params = $this->Paginator->params();
if ($params['count'] > 0): ?>
<div class="pagination-totals pull-left">
    <?php echo $this->Paginator->counter(array('format' => __('{:start} to {:end} of {:count}'))) ?>
</div>
<?php endif; ?>
<?php echo $this->Paginator->numbers(array(
    'class' => 'pull-right',
    'prev'     => '<',
    'next'     => '>',
)); 
?>

问题是,当我为NewsPost选择第二页时,它会切换到EventPost的第二页,那么我如何使用CakePHP分页来区分同一页面上的两个独立模型呢?

感谢

您的页面中只有一个名为params的页面,因此结果正常。

您必须使用ajax请求和分离的操作

来处理此问题