我有一个分页器如下:
var $paginate = array(
'order'=>array('ReleaseServer.server_environment'=>'ASC',
'ReleaseServer.server_name'=>'ASC'),
'joins'=>array(
array(
'table' => 'release_server_to_components',
'alias' => 'ReleaseServerToComponent',
'type' => 'LEFT',
'foreignKey' => false,
'conditions'=> array('ReleaseServer.id = ReleaseServerToComponent.release_server_id')
),
array(
'table' => 'release_components',
'alias' => 'ReleaseComponent',
'type' => 'LEFT',
'foreignKey' => false,
'conditions'=> array('ReleaseServerToComponent.release_component_id = ReleaseComponent.id')
)
),
'group'=>array('ReleaseServer.id'),
'contain' => array(
'ReleaseServerToComponent' => array(
'ReleaseComponent' => array(
'Release'
)
)
),
'limit' => 25,
);然后,在我的控制器函数中执行以下操作:
$this->set('allServers', $this->paginate('ReleaseServer', $conditions));其中$conditions是查询的一些额外条件。
正如你在上面所看到的,我把限制设定在25。
然而,数据库中有29条记录,但是页面只显示了25条,页面上说只有一页。
但是当一个人单击其中一个列标题来对它们进行排序时,一些在奇迹出现之前没有出现的行会消失。为什么会这样?
如果您需要其他信息,请告诉我。
更新
现在,我看到问题存在于paginate变量的paginate部分,但是我需要它来使它不包含同一件事情的多行。
我该怎么解决这个问题?
发布于 2011-09-15 19:20:42
我通过在我的模型中添加一个新的paginateCount()函数来解决这个问题:
function paginateCount($conditions = null, $recursive = 0, $extra = array())
{
$count = $this->find('count', array(
'fields' => 'DISTINCT ReleaseServer.id',
'conditions' => $conditions
));
return $count;
}https://stackoverflow.com/questions/7435045
复制相似问题