分页数据查询方式
以下代码仅供参考:
~~~
/**
* Note:获取项目信息列表
* Created by liuchuan.
* Time: 2019/2/26 9:58
* @return \think\response\Json
*/
public function listProject(){
$data = input('post.');
$where = [];
if(!empty($data['project_state'])){
$where = array_merge($where,array('project_state' => $data['project_state']));
}
return $this->listPageFunction(new ProjectModel(),$where);
}
~~~
**不推荐以下方法**
~~~
//这种方式会导致模糊查询或条件查询数据加载错误,不要使用,已经使用请先计算满足数据的条数再分页
public function listUser()
{
//分页数据
$limit = $this->getLimit();
//需要排序的字段
$sortType = $this->getSortType();
//搜索字段
$searchText = $this->getSearchText();
//TODO 在这里进行其他条件组装
$where = input('post.where');
if (empty($where)) {
$where = array();
}
$userModer = new UserModel();
$res = $userModer->getUserList($searchText, $where, $limit, $sortType);
$count = $userModer->getUserCount($searchText, $where);
$result = $this->responseSuccess($res, $count);
return json($result);
}
~~~
修正后的代码
~~~
public function listStaff()
{
$searchText = $this->getSearchText();
$where = input('post.where');
if (empty($where)) {
$where = array();
}
$staffModel = new StaffModel();
$count = $staffModel->getCount($searchText, $where);
$limit = $this->getLimit($count);
$sortType = $this->getSortType();
$leave = input('level');
if (empty($leave)) {
$leave = false;
}
$result = $staffModel->getList($searchText, $where, $limit, $sortType, $leave);
return $this->responseSuccess($result, $count);
}
~~~