Model数据 用于关联
Service 处理数据逻辑 方便复用
Controller 处理请求调用Service
V 模版
Controller调用Service使用注入
Service 分页
#此处使用注入,方便测试 里面可以直接调用
public function index(UserService $userService)
{
$page = $this->request->get('page', 1);
// 只调用Service,不干别的
$data = $userService->getList($page);
$this->assign('data', $data);
return $this->fetch();
}
service
public function getList(int $page, int $limit=100): array
{
// 分页查询:paginate() 是 TP6 核心方法,CMF6 完全兼容
/** @var Paginator $paginate */
$paginate = User::where('status', 1)
->order('id', 'desc')
->paginate([
'list_rows' => $limit,
'page' => $page,
]);
// 格式化返回(适配前端/模板)
return [
'total' => $paginate->total(), // 总条数
'list' => $paginate->items(), // 当前页数据
'page' => $paginate->currentPage(), // 当前页
'limit' => $paginate->listRows(), // 每页条数
'pages' => $paginate->lastPage(), // 总页数
];
}
#或者简单点 不要花里胡哨
public function getList(int $page, int $limit=100)
{
// 就这一句是分页核心
return User::where('status',1)->order('id desc')->paginate($limit);
}