Cakephp和一个动作中多次使用paginate

时间:2017-02-21 20:04:45

标签: php cakephp pagination

我在控制器中有一个动作,我在同一个动作中使用cakedc搜索并多次使用分页。 在第一个分页中我想使用限制和maxlimit为50,在第二个我想使用限制和maxlimit为1000。 以下是我使用的代码示例:

$this->Paginator->settings['limit'] = 50;
$this->Paginator->settings['maxlimit'] = 50;
$this->set('uuser', $this->paginate());
$this->Paginator->settings['limit'] = 1000;
$this->Paginator->settings['maxlimit'] = 1000;
$this->set('maxusers',$this->paginate());  

在我的页面中让我们说索引,我只使用uuser,但问题是它需要限制和maxlimit为1000,而不是50。 是否有任何方法可以使用uuser变量限制和maxlimit分页50和maxusers限制和maxlimit分页1000.因为maxusers存储在会话变量中,我不在index.ctp页面中使用它。 / p>

由于

1 个答案:

答案 0 :(得分:0)

以下是分页示例您可以像这样添加自己的自定义分页

<div class="paging" style="  background: none repeat scroll 0 0 #60C8F2;
    float: right;
    padding: 0 10px;
    text-align: left;
    width: auto;">
<?php
$this->Paginator->options(array(
    'url' => array_merge(array(
        'controller' => $this->params['controller'],
        'action' => $this->params['action'],
    ) , $this->params['pass'], $this->params['named'])
));

echo $this->Paginator->prev('' . '' , array(
    'class' => 'prev',
    'escape' => false
) , null, array(
    'tag' => 'span',
    'escape' => false,
    'class' => 'prev'
)), "\n";
echo $this->Paginator->numbers(array(
    'modulus' => 2,
    'skip' => '',
    'separator' => " \n",
    'before' => null,
    'after' => null,
    'escape' => false
));
echo $this->Paginator->next('' . '', array(
    'class' => 'next',
    'escape' => false
) , null, array(
    'tag' => 'span',
    'escape' => false,
    'class' => 'next'
)), "\n";
?>
</div>

将此代码放入元素pagination.ctp

调用控制器中的组件

var $components = array('Paginator');

将分页调用到您的控制器

 $this->paginate = array(
            'limit' => 10,
            'order' => array(
            'User.created' => 'desc')

        );
        $results = $this->paginate('User');

在ctp文件中调用分页

<?php echo $this->element('pagination'); ?>