我是新来的。目前,我正在为一些项目构建API。我设法从数据库中获取所有数据,并将其作为对前端的响应发送。现在有一个改进,我应该限制每页输出的结果。所以分页。我在yii上读了很多关于CPagination的文章,不管我尝试了什么,我都得到了500个内部服务器错误。这是我的密码
public function actionIndex()
{
//getting page number from front end
$request = file_get_contents('php://input');
if (is_null($request)) {
$page = 1;
} else {
$input = json_decode($request, true);
$page = $input['page'];
}
//Criteria sorting templates by id DESC
$criteria = new CDbCriteria;
$criteria->order = 'id DESC';
//Number of rows returned
$count = TblTemplate::model()->count($criteria);
//Templates per page
$perPage = 2;
//Calculating the offset
$offset = ($page > 1) ? ($page * $perPage) - $perPage : 0;
$pages = new CPagination($count);
$pages->pageSize = $perPage;
$pages->offset = $offset;
$pages->applyLimit($criteria);
//fetching all templates
$templates = TblTemplate::model()->findAll($criteria);
$response = [];
//Fetching all array - filtering through the cluster
foreach ($templates as $template) {
$response[] = [
'id' => $template->id,
'name' => $template->name,
'email' => $template->email,
'content' => $template->content
];
}
echo json_encode($response);
}谢谢你的帮助。
发布于 2015-07-10 11:02:02
改为:-
$perPage = 2;
$offset = ($page > 1) ? ($page * $perPage) - $perPage : 0;
$criteria = new CDbCriteria;
$criteria->order = 'id DESC';
$criteria->limit=$perPage;
$criteria->offset=$offset;
$templates = Users::model()->findAll($criteria);https://stackoverflow.com/questions/31338374
复制相似问题