我希望能够在不需要分页的情况下显示所有记录,但仍希望通过使用类似$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>
答案 0 :(得分:5)
这是处理列排序的分页组件。如果您不想使用分页器(为什么不呢?),您必须编写自己的代码才能完成。
您可以对代码进行一次小调整:
'limit' => $this->Group->find('count')
这将确保您始终有足够的限制来显示完整的表格。