控制器页面中的分页错误

时间:2011-11-14 08:26:05

标签: cakephp cakephp-1.3

我无法在控制器页面中为我的查看功能正确分页。请协助。以下代码适用于我的控制器页面。我是否在分页中正确分配了所有值?

 function view() {
    $user_id = $this->layout = 'mainLayout';
    $user_id = $this->Auth->user('id');
    if (!empty($user_id)) {
        $userInfo = $this->User->getUserInfo($user_id);

    $friends_list = $this->Connection->getFriendsId($user_id);

    //getting the friends information by just passing the id of the user
    $all_friends_info = Classregistry::init('User')->getUserInfoList($user_id, $friends_list);

    $this->set(compact('all_friends_info','userInfo'));

    }

  $this->paginate = array('conditions' => array('User.id' =>$all_friends_info),
                            'limit' => 10);
  $data = $this->paginate('friends_list');
  $this->set('friends_list',$data );
  $this->set('data', $this->paginate('User', $all_friends_info));
}

在我的视图页面中,我有必要的显示代码:

 <?php
    echo $this->Paginator->counter(array(
        'format' => __('Page %page% of %pages%, showing %current% users out of %count% total connections', true)
    ));
    ?>  </p>

<div class="paging">
    <?php echo $this->Paginator->prev('<< ' . __('previous', true), array(), null, array('class' => 'disabled')); ?>
    |   <?php echo $this->Paginator->numbers(); ?>
    |
    <?php echo $this->Paginator->next(__('next', true) . ' >>', array(), null, array('class' => 'disabled')); ?>
</div>

1 个答案:

答案 0 :(得分:0)

我看到很多错误,也许其中一个就是问题:S(你从来没有说过真正的问题是什么,只是没有正确分页就是大......

1)正如Hans wassink所说:$user_id = $this->layout = 'mainLayout';应为$this->layout = 'mainLayout';

2)你做错了两件事之一

2.a)$all_friends_info = Classregistry::init('User')->getUserInfoList($user_id, $friends_list);为什么你在$ this-&gt;用户

中调用classregistry :: init

2.b)如果您没有加载用户模型,那么为什么使用$userInfo = $this->User->getUserInfo($user_id);

3)现在到了分页部分的真正问题

  $this->paginate = array('conditions' => array('User.id' =>$all_friends_info),
                            'limit' => 10);
  $data = $this->paginate('friends_list');
  $this->set('friends_list',$data );
  $this->set('data', $this->paginate('User', $all_friends_info));

这里你正在做两个分页!这将弄乱你的分页,至少是$ this-&gt; Paginator的一部分...在这种情况下它应该得到最后一个。做两个分页比看起来复杂一点。您可能需要将页面作为命名param传递并解析它,因为它无法识别哪个页面是哪个....

here is a page如何做到这一点

希望这可以帮助你,如果我想念一些只是评论;)