1

実際にページ付けを必要とせずにすべてのレコードを表示できるようにしたいのですが、。のようなものを使用して、並べ替え可能な列ヘッダーを持つ機能を維持したいと考えています$this->Paginator->sort()

'limit' => 100一度に約50を超えるレコードがないことを知っているため、現在設定しています。これは問題なく機能しますが、基本的に、他の方法でページを変更せずに並べ替え可能な列を実行する方法があるかどうかを知りたいと思いました。'limit' => unlimitedこれを実現するCakePHPのまたは別のコンポーネントなど。

これがコントローラーです:

class GroupsController extends AppController {

    public function view($slug = null) {

        $group = $this->Group->findBySlug($slug);

        $this->paginate = array(
            'Person' => array(
                'conditions' => array('Person.group_id' => $group["Group"]['id']),
                'limit' => 100,
                'recursive' => 0
            )
        );

        $people = $this->paginate('Person');

        $this->set('people', $people);

    }
}        

ビューは次のとおりです。

<table>
    <tr>
        <th><?php echo $this->Paginator->sort('Person.id','Id'); ?></th>         
        <th><?php echo $this->Paginator->sort('first_name', 'First Name'); ?></th>         
        <th><?php echo $this->Paginator->sort('last_name', 'Last Name'); ?></th>         
    </tr>
    <!-- Here is where we loop through the people -->
    <?php foreach ($people as $person): ?>
    <tr>
        <td><?php echo $person['Person']['id']; ?></td>
        <td><?php echo $person['Person']['first_name']; ?></td>
        <td><?php echo $person['Person']['last_name']; ?></td>
    </tr>
    <?php endforeach; ?>
    <?php unset($player); ?>
</table>
4

1 に答える 1

5

列の並べ替えを処理するのはページネーションコンポーネントです。パジネーターを使用したくない場合(なぜですか?)、それを行うために独自のコードを作成する必要があります。

コードに対して実行できる微調整の1つは、次のとおりです。

'limit' => $this->Group->find('count')

これにより、テーブル全体を表示するのに十分な制限が常に確保されます。

于 2012-11-08T16:53:54.470 に答える