Ошибка разбиения на страницы на странице контроллера - PullRequest
0 голосов
/ 14 ноября 2011

Я не могу правильно выполнить нумерацию страниц на странице контроллера для функции просмотра. Пожалуйста помогите. Следующий код ниже для моей страницы контроллера. Я правильно назначил все значения в paginate?

 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 голосов
/ 14 ноября 2011

Я вижу много ошибок, и, возможно, одна из них - проблема: S (вы никогда не говорили, в чем на самом деле проблема, просто неправильная подкачка слишком большая ...

1) как сказал Ганс Вассинк: это $user_id = $this->layout = 'mainLayout'; должно быть $this->layout = 'mainLayout';

2) Вы делаете одну из двух вещей неправильно

2.a) $all_friends_info = Classregistry::init('User')->getUserInfoList($user_id, $friends_list); Почему вы вызываете classregistry :: init, если он у вас есть в $ this-> User

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-> Paginator ... в этом случае он должен получить последний. Делать два пагината немного сложнее, чем кажется. Возможно, вам придется передать страницу с именем param и проанализировать ее, поскольку она не распознает, какая страница есть какая ...

вот страница как это сделать

Надеюсь, это поможет вам, если я что-то упущу, просто прокомментируйте;)

...